求问这道关于Switch语句的c语言的题

求问这道关于Switch语句的c语言的题,第1张

这是因为这个switch...case句块的执行顺序是这样的,一开始k=8,在case从句中没有匹配的,所以它会执行defult句块中的内容,因为没有break语句来中断,所以在那之后会继续往下执行case10,case11句块中的内容,直到触底退出,因为这个过程共有3个k+=1语句,所以k被加了3次1,这样k的值就从8变成了11。

货物价格s变量应该为浮点类型float;

switch语句中要有default,可对应s>=10000的情况,因此直接令c=s/1000即可;

“1000元以上、5000元以下货物征税2%”,感觉包括1000但不包括5000

因此对应的c为1,2,3,4,那么d=2语句应写在case 4:之后;

最后输出税金的格式为%f,默认是保留小数点后6位,不知道题目有没有其他格式要求

比如对于s<1000、税金为0的情况,是否还要保留小数点后6位

以下修改的代码仍按照%f格式输出,具体改动的地方见注释:

附源码链接:货物税金

这个题目主要考察的是对switch的掌握程度。

其实,对于这种有代码的题目, 最好的方法就是直接在编译器运行调试一下。

如下是我这边运行的结果截图:

switch相关使用技巧(或者注意事项):

switch 语句中的 expression 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。

在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。

case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。

当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。

当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。

不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。

一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。

如果以上对你有帮助,请采纳一下, 谢谢。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8121723.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存