现在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;
char c;
double x,y;
scanf("%d%d %c",&a,&b,&c);
switch(c)
{
case 'm' :x=0.95;break;
case 'e' :x=0.97;break;
}
if(b==90)
{
y=a*x*6.95;
printf("%.2lf",y);
}
else if(b==93)
{
y=a*x*7.44;
printf("%.2lf",y);
}
else if(b==97)
{
y=a*x*7.93;
printf("%.2lf",y);
}
return 0;
}
第一,尽量优化,过于多的if语句难以检测错误;
第二,%c在scanf语句中会取空格,需把%d与%c用空格隔开