油费计算,程序编译没错误,但是输出的答案是错误,不理解哪里算法错了?请帮忙
现在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> int main() { int a,b; float temp; char ch; scanf("%d%d%f",&a,&b,&ch); switch(b) { case 90: temp=6.95; break; case 93: temp=7.44; break; case 97: temp=7.93; break; } if(ch=='m') { printf("%.2f",a*temp*0.95); } else { printf("%.2f",a*temp*0.97); return 0; } }
例如:输入:40 97 m 正确答案是:301.34, 实际结果输出:307.68
单步调试:
程序代码:
if(ch=='m') { printf("%.2f",a*temp*0.95); } else { printf("%.2f",a*temp*0.97);
调试信息:ch=0'\000',这里不懂为什么?