zoukankan      html  css  js  c++  java
  • 哈利波特最优价格

    一、题目

          书店针对《哈利波特》系列书籍进行促销活动,一共5卷,单独一卷售价8元,具体折扣如下:本数对应的折扣分别为:2本—5%,3本—10%,4本—20%,5本—25%。根据购买的卷数以及本数,会对应不同的折扣规则情况。单独一本书只会对应一个折扣规则。设计算法能够计算出读者购买一批书的最低价格。

    二、思路

         以10本为基础,只用求余数的最优价格即可——只需考虑10本以内的。对于5本及5本以内的直接乘上折扣即可,对于超过5本的,则考虑情况,例如7本分为3,4。1,6.两种情况。用for循环列出所有情况,将值存入数组。比较大小求出最小值。在加上10本的基础价格。即可。

    三、源代码

    #include<iostream.h>
    double f1(int i)
    {
        double a;
        switch(i)
        {
            case 5: a=0.75;break;
            case 4: a=0.80;break;
            case 3: a=0.90;break;
            case 2: a=0.95;break;
            case 1: a=1.0;break;
        }
        return a;
    }
    int main()
    {
        int numyu,num10,s,i;
        double c;
        double sum;
        int BookNum;
        cout<<"输入购买本数:";
        cin>>BookNum;
        numyu=BookNum%10;
        num10=BookNum/10;
        sum=num10*10*8*0.75;
        double sum1,sum2;
        double b[10];
        int p=0;
        if(numyu>5)
        {
            for(i=5;i>=(numyu+1)/2;i--)
            {
                c=f1(i);
                sum1=c*i*8;
                c=f1(numyu-i);
                sum2=c*(numyu-i)*8;
                b[p++]=sum1+sum2;
            }
            double min=b[0];
            for(i=1;i<p;i++)
            {
                if(min>b[i])
                {
                    min=b[i];
                }
            }
            cout<<"最低购买:"<<min+sum;
        }
        else
        {
            c=f1(numyu);
            sum1=numyu*8*c;
            cout<<"最低购买:"<<sum1+sum;
        }
        return 0;
    }
    

     四、实验截图

        

    五、实验总结

        本次实验刚开始遇到如何根据书本数目返回折扣值,最终用switch的方法将五种折扣方案返回。对于此次实验不满意的地方就是

    我写的时候没有养成写注释的习惯,这应该是差大弊端。在以后的实验中会将注释方面做个重点,强迫自己的思路有条目,而不是盲

    目的敲代码。

  • 相关阅读:
    【学习笔记】【C语言】递归
    【学习笔记】【C语言】static和extern对变量的作用
    【学习笔记】【C语言】static和extern对函数的作用
    【学习笔记】【C语言】typedef
    【学习笔记】【C语言】文件的包含
    【学习笔记】【C语言】条件编译
    【学习笔记】【C语言】宏定义
    【学习笔记】【C语言】枚举
    【学习笔记】【C语言】结构体的嵌套
    【学习笔记】【C语言】结构体和函数
  • 原文地址:https://www.cnblogs.com/wang321/p/4427980.html
Copyright © 2011-2022 走看看