C语言中switch语句用法(做题)!谢谢!

C语言中switch语句用法(做题)!谢谢!,第1张

#include <stdio.h>

int main() {

float amount, discount, total

printf("请输入购物金额:")

scanf("%f", &amount)

switch ((int)amount / 100) {

case 0:

discount = 1

break

case 2:

discount = 0.9

break

case 5:

discount = 0.8

break

default:

discount = 0.75

break

}

total = amount * discount

printf("打折率为:%.2f\n", discount)

printf("实际付款金额为:%.2f\n", total)

return 0

}

在这个示例中,我们首先定义了变量

amount

discount

total

,分别用于存储输入的购物金额、打折率和实际付款金额。然后,我们使用

printf

scanf

分别输出提示信息和读取用户输入。接下来,搜轮我们使用

switch

语句根据购物金额计算打折率。在

switch

语句中,我们竖漏灶使用

(int)amount / 100

将购物余扮金额除以100并取整,得到购物金额所在的区间。然后,根据不同的区间设置不同的打折率。最后,我们计算实际付款金额,并使用

printf

输出打折率和实际付款金额。

这是因为这个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格式输出,具体改动的地方见注释:

附源码链接:货物税金


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

原文地址: http://outofmemory.cn/yw/8232862.html

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

发表评论

登录后才能评论

评论列表(0条)

保存