[2020.3.8]改错2

跟風遠走 提交于 2020-03-08 13:47:15

现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。

本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。

输入格式:

输入在一行中给出两个整数和一个字符,分别表示顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助)。

输出格式:

在一行中输出应付款额,保留小数点后2位。

第一次错:

#include <stdio.h>
void main()
{
    int oil,kind;
    float discount=0.97,money;
    char type;
    scanf("%d%d %c",&oil,&kind,&type);
    if(type=='m') discount=0.95;
    if(kind==90) kind=(float)6.95;else if(kind==93) kind=(float)7.44;else kind=(float)7.93;
    money=oil*kind*discount;
    printf("%.2f",money);
}

后来在断点调试时发现kind依然是整形7,即使加了(float)也不能改变类型。

所以又加了个unit浮点型:

#include <stdio.h>
void main()
{
    int oil,kind;
    float discount=0.97,money,unit=7.93;
    char type;
    scanf("%d%d %c",&oil,&kind,&type);
    if(type=='m') discount=0.95;
    if(kind==90) unit=6.95;else if(kind==93) unit=7.44;
    money=oil*unit*discount;
    printf("%.2f",money);
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!