pta 7-43 计算油费 (15 分)
7-43 计算油费 (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位。
输入样例:
40 97 m
输出样例:
301.34
#include
int main()
{int a,b;float cost;char c;scanf("%d %d %c",&a,&b,&c);switch(b){case 90: cost=6.95; break;case 93: cost=7.44; break;case 97: cost=7.93; break;}if(c=='m')printf("%.2f\n",0.95*cost*a);elseprintf("%.2f\n",0.97*cost*a);return 0;
}
代码解析:
看题可以设四个变量,a,b,c都有明确说明,所以只要给花费多少起名就好,花费要求保留两位小数,所以可以设为float或者double型。
根据题意汽油b分为三类,自助服务也有两类,这种就可以使用循环来解决。
汽油种类有三类,方便起见用了switch循环,只要输入的b值与case语句匹配,就可以进入循环执行语句然后跳出循环执行下一步。
自助服务用了if循环,在if的表达式中先判断是m类型还是e类型,然后找到对应类型执行语句。
switch的用法 :
switch(表达式){case 常量表达式1:语句1 ;break;case 常量表达式2: 语句2;break;case 常量表达式3: 语句3;break;case 常量表达式n:语句n;break;default:语句n+1;}switch表达式与case中哪个表达式一样就执行哪个case语句。switch语句后default可写可不写,如果写了一定要放在所有case之后,default之后就不用写break。default语句的执行是由于前面case表达式与switch表达式 都不一样所以执行default语句。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
