现在 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 为字符 只能用‘‘
不能用 “”

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐