注册 登录
编程论坛 C++教室

以下程序运行结果不对,但是我没检查出来

随风晨爱 发布于 2018-10-19 15:36, 1714 次点击
有以下程序,用switch语句,为了打折促销,1000元以上打9.5折,2000元以上打9折,3000元以上打8.5折,5000元以上打8折,程序如下#include <iostream>
using namespace std;
int main()
{
    int c;
    float total_payment, discount_rate, real_payment;
    cout << "plase input total_payment for goods:";
    cin >> total_payment ;
    c = total_payment / 1000;
    switch(c)
    {
        case 0: discount_rate=1; break;
        case 1: discount_rate=0.95; break;
        case 3: discount_rate=0.9; break;
        case 4:
        case 5: discount_rate=0.85; break;
        difault : discount_rate=0.8; break;
    }
    real_payment = discount_rate * total_payment;
    cout << "the real payment is:" << real_payment << endl;
    return 0;
}
可是当输入8000元时,结果不对啊,是哪里出错了?
只有本站会员才能查看附件,请 登录
3 回复
#2
rjsp2018-10-19 16:00
difault 这个关键字都拼写错了!
再者你的代码
程序代码:
switch(c)
{
    case 0: discount_rate=1; break;
    case 1: discount_rate=0.95; break;
    case 3: discount_rate=0.9; break;
    case 4:
    case 5: discount_rate=0.85; break;
    difault : discount_rate=0.8; break;
}
和要求“1000元以上打9.5折,2000元以上打9折,3000元以上打8.5折,5000元以上打8折”也不符吧

#3
随风晨爱2018-10-19 16:14
回复 2楼 rjsp
那应该怎么写呢,错误的地方已经改了
#4
rohalloway2018-10-20 03:53
程序代码:

#include <iostream>
using namespace std;

int main()
{
    int c;
    float total_payment, discount_rate, real_payment;
    cout << "plase input total_payment for goods:";
    cin >> total_payment;
    c = total_payment / 1000;
    switch (c)
    {
    case 0: discount_rate = 1; break;
    case 1: discount_rate = 0.95; break;
    case 2: discount_rate = 0.9; break;
    case 3: discount_rate = 0.85; break;
    case 4: discount_rate = 0.85; break;
    default: discount_rate = 0.8; break;
    }
    real_payment = discount_rate * total_payment;
    cout << "the real payment is:" << real_payment << endl;
    return 0;
}
1