※※※大家好!我是同学〖森〗,一名计算机爱好者,今天让我们进入刷题模式。若有错误,请多多指教。
👍 点赞 ⭐ 收藏 📝留言 都是我创作的最大的动力!
目录
※※※大家好!我是同学〖森〗,一名计算机爱好者,今天让我们进入刷题模式。若有错误,请多多指教。
题目描述:
某加油站有a,b,c三种汽油,售价分别为3.25、3.00、2.75(元/千克),也提供了“协助加”或“自己加”两个服务等级,这样用户可以分别得到5%或10%的优惠。编程实现输出用户应输入的金额。
问题分析 :
用户应付的金额与三个变量有关:即汽油种类(a(3.25),b(3.00),c(2.75))、服务等级(“协助加”(5%)或“自己加”(10%))和 加油量;需要创建3个变量来储存它们,然后用选择语句来确定不同的价格。
程序源码:
#include<stdio.h>
int main()
{
float kg, price, unit_price, discount;
char m, n;
printf("请依次输入汽油种类(a,b,c)、加油量(kg)\n");
printf("服务等级(m:自己加;c:协助加):\n");
scanf("%c%f%c", &m, &kg, &n);
//汽油种类判断
switch (m)
{
case 'a':
unit_price = 3.25;
break;
case 'b':
unit_price = 3.00;
break;
case 'c':
unit_price = 2.75;
break;
default:
break;
}
//服务等级判断
switch (n)
{
case 'm':
discount = 0.1;
break;
case 'c':
discount = 0.05;
break;
default:
discount = 0;
break;
}
price = kg * unit_price * (1 - discount);
printf("请你支付%.2f元", price);
return 0;
}
运行结果:
Switch复习:
一般形式:
swtich(表达式)
{ // ()中的数据类型仅仅支持整数
case 常量1 :
要执行的语句;
break;
case 常量2 :
要执行的语句;
break;
case 常量3 :
要执行的语句;
break;
default:
要执行的语句;
break;
}
注意要点:
- 在case后的各常量表达式的值不能相同,否则会出现错误。
- 在case后,允许有多个语句,可以不用{ }括起来。
- 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
- default子句可以省略不用。
- switch 括号里面只能放整数
- break语句不能遗漏 ,假如遗漏了,那么程序会继续往下开始执行,
- 不太能表达相对复杂的结构
- switch里面也支持嵌套,但是一般不用
举一反三:
☀从输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断下一个字母。
☀50米赛跑测试时间小于8s的同学用A表示,在8-9.5s之间的用B表示,9.5s以上的用C表示。