问题:某加油站有a,b,c三种汽油,售价分别为5.75、6.00、7.15(元/升),也提供了“协助加”或“自己加”两个服务等级,这样用户可以分别得到5%或10%的优惠。编程实现输出用户应输入的金额。
思路:1.多个分支进行选择的,可以采用switch语句,虽然也能用if else来,但是switch每一个case都是独立进行的,而if else都要进行一遍,所以在进行三者或三者以上的选择时,我们多用switch语句
2.定义时,用float
运行结果如下
10 b e
参考代码如下
#include<stdio.h>
#include<stdlib.h>
int main ()
{
float x, m, m1, m2;
char y, z;
printf("汽油的种类有 a, b, c\n");
printf("服务的等级有 n, m, e\n");
printf("请分别输入油的升数、汽油的种类和服务的等级");
scanf ("%f %c %c", &x, &y, &z);
switch (y)
{
case 'a' :
m1 = 5.75;
break;
case 'b' :
m1 = 6.00;
break;
case 'c' :
m1 = 7.15;
break;
}
switch (z)
{
case 'n' :
m2 = 0;
break;
case 'm' :
m2 = 0.05;
break;
case 'e' :
m2 = 0.1;
break;
}
m = x * m1 - x * m1 *m2;
printf ("汽油的种类是:%c\n", y);
printf ("服务的等级是:%c\n", z);
printf ("用户应付的金额是:%.3f\n", m);
return 0;
}