现在 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 位。
我的答案;
#include <stdio.h>
int main()
{
float price;
char c;
int a,b;
scanf("%f %d %c", &a, &b, &c);
switch (b)
{
case 90:
if (c == 'm')
{
price = 6.95 * a * 0.95;
}
else if (c == 'e')
{
price = 6.95 * a * 0.97;
}
break;
case 93:
if (c == 'm')
{
price = 7.44 * a * 0.95;
}
else if (c = 'e')
{
price = 7.44 * a * 0.97;
}
break;
case 97:
if (c = 'm')
{
price = 7.93 * a * 0.95;
}
else if (c = 'e')
{
price = 7.93 * a * 0.97;
}
break;
}
printf("%.2f", price);
return 0;
}
这样写有点复杂,优化了一下
#include <stdio.h>
int main()
{
int a, b;
double price1, price2;
char c;
scanf("%d%d %c", &a, &b, &c);
switch (b)
{
case 90:price1 = a * 6.95; break;
case 93:price1 = a * 7.44; break;
case 97:price1 = a * 7.93; break;
}
if (c == 'm')
{
price2 = price1 * (1 - 0.05);
}
else
{
price2 = price1 * (1 - 0.03);
}
printf("%.2f", price2);
return 0;
}
注意 m e 为字符 只能用‘‘
不能用 “”