现在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位。
输入样例:
40 97 m
输出样例:
301.34
思路:本题没什么难度,用if-else if 或者switch都可以做。强调一下switch的语法,满足某个case时,执行完后面的语句,要加break; 才能跳过剩下的case。还有就是精度问题,float如果不行,就换double试试。
代码1:
#include <stdio.h>
int main () {
int a,b;
char c;
double fee = 0;
scanf("%d %d %c", &a, &b, &c);
if (b == 90) fee = a*6.95;
else if (b == 93) fee = a*7.44;
else if (b == 97) fee = a*7.93;
if (c == 'm') fee *= 0.95;
else if (c == 'e') fee *= 0.97;
printf("%.2f",fee);
return 0;
}
代码2:
#include <stdio.h>
int main () {
int a,b;
char c;
double fee;
scanf("%d %d %c", &a, &b, &c);
switch (b) {
case 90: fee = a*6.95; break;
case 93: fee = a*7.44; break;
case 97: fee = a*7.93;
}
if (c == 'm') fee *= 0.95;
else if (c == 'e') fee *= 0.97;
printf("%.2f",fee);
return 0;
}