本帖最后由 huangsailin 于 2015-7-18 02:22 编辑
//刚刚敲了下,有强迫症自己添加了一点点废话,可以直接复制粘贴运行试下
/*某个自动加油站有 ‘a’,‘b’,‘c’三种汽油品种,单价分别为 6.92,7.37,7.64(元/公升),也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠,请编程序针对用户输入加油量x,汽油品种y和服务类型z(‘f’—自动加,‘m’—自己加,‘e’—协助加),(注:‘f’—自动加无优惠),计算应付款pay。
*/
#include <stdio.h>
int main(int argc, const char * argv[]) {
//定义变量y、z,分别用来存放用户输入的汽油品种和服务类型
char y,z;
//定义变量x、pay,用来存放用户输入的加油量和应付款
float x,pay=0;
//提示用户输入加油量x,汽油品种y和服务类型z,分别保存在变量x、y、z中
printf("黑马加油站温馨提示:\n\n1.汽油品种有a、b、c三种可选,a单价6.92元/公升,b单价7.37元/公升,c单价7.64元/公升\n2.服务类型有f、m、e三种可选,f为自动加无优惠,m自己加优惠5%%,e协助加优惠10%%\n3.加油量单位为公升\n\n请分别输入加油量 汽油品种 服务类型,用空格隔开:\n");
//接收用户输入的值
scanf("%f %c %c",&x,&y,&z);
//校验加油量是否大于零
while (x<=0) {
printf("别闹了亲!请重新输入大于零的加油量^_^\n");
scanf("%f %c %c",&x,&y,&z);
}
//校验用户输入的汽油品种和服务类型是否存在
if (y=='a'||y=='b'||y=='c') {
}
else {
printf("很抱歉亲!目前还没有第四种价格的汽油,请重新输入:\n");
scanf("%f %c %c",&x,&y,&z);
}
if (z=='f'||z=='m'||z=='e') {
}
else {
printf("很抱歉亲!我们会尽快开放其他的服务类型,请重新输入:\n");
scanf("%f %c %c",&x,&y,&z);
}
//用switch语句实现根据用户输入的加油量、汽油品种、服务类型而求出应付款pay
switch (y) {
case 'a':
switch (z) {
case 'f':
pay=6.92*x;
break;
case 'm':
pay=6.92*0.95*x;
break;
case 'e':
pay=6.92*0.9*x;
}
break;
case 'b':
switch (z) {
case 'f':
pay=7.37*x;
break;
case 'm':
pay=7.37*0.95*x;
break;
case 'e':
pay=7.37*0.9*x;
}
break;
case 'c':
switch (z) {
case 'f':
pay=7.64*x;
break;
case 'm':
pay=7.64*0.95*x;
break;
case 'e':
pay=7.64*0.9*x;
}
}
//在控制台打印用户应付款等信息
printf("\n您好!您本次加油量:%.2f公升 服务类型:%c 需要付的费用为:%.2f元,欢迎下次光临!\n",x,z,pay);
return 0;
}
|