- /*
- 某个自动加油站有 ‘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[])
- {
- // 选择 服务等级 :‘f’—自动加,‘m’—自己加,‘e’—协助加
- int f,m ,e ;
- printf("选择 服务等级 :‘f’—自动加,‘m’—自己加,‘e’—协助加\n");
-
- // 汽油品种‘a’,‘b’,‘c’三种汽油品种,单价分别为 6.92,7.37,7.64(元/公升)
- float a = 6.92;float b = 7.37 ;float c = 7.64 ;
- printf("汽油品种,‘a’,‘b’,‘c’三种汽油品种\n");
-
- // 加油量 x
- int x = 0;
- printf("请输入加油量:\n");
-
- // 汽油品种y和服务类型z,加油量x
- char z ,y;
- scanf("%c,%c,%d",&z,&y,&x);
-
- // 钱数是pay
- int pay = 0;
- //当选择是自动加汽油的时候
- if (z == f )
- {
- if (y == a)
- {
- pay = a * x;
- printf("自动加,无优惠,应付%d",pay);
-
- }
- else if (y == b)
- {
- pay = b * x;
- printf("自动加,无优惠,应付%d",pay);
- }
- else if (y == c)
- {
- pay = c * x;
- printf("自动加,无优惠,应付%d",pay);
- }
- }
- // printf("自动加,无优惠,应付");
-
- // 当选择是自己加汽油的时候
- if (z == m )
- {
- if (y == a)
- {
- pay = (a * x)*0.05;
- printf("自己加,5%优惠应付%d",pay);
-
- }
- else if (y == b)
- {
- pay = (b * x)*0.05;
- printf("自己加,5%优惠应付%d",pay);
- }
- else if (y == c)
- {
- pay = (c * x)*0.05;
- printf("自己加,5%优惠应付%d",pay);
- }
- }
-
- // 协助加汽油
- if (z == e )
- {
- if (y == a)
- {
- pay = (a * x)*0.10;
- printf("协助加,优惠10%,应付%d",pay);
-
- }
- else if (y == b)
- {
- pay = (b * x)*0.10;
- printf("协助加,优惠10%,应付%d",pay);
- }
- else if (y == c)
- {
- pay = (c * x)*0.10;
- printf("协助加,优惠10%,应付%d",pay);
- }
- }
- return 0;
复制代码
问题1:输入了三个数,不运行if语句。
问题2:如何精简这个语句? |