C语言题如图(需用switch语句)

 我来答
左冷禅2014
2019-03-28 · TA获得超过210个赞
知道小有建树答主
回答量:249
采纳率:71%
帮助的人:55.2万
展开全部
#include<stdio.h>

int main() {
// 金额的四个梯度
int arrAmount[] = { 1000, 500, 200, 0 };
// 每个梯度对应的折扣
double arrDiscount[] = { 0.7, 0.8, 0.9, 1.0 };
int index = -1, i = 0;
double discount = 1.0, realAmount = 0;
printf("请输入金额:");
int amount;
scanf("%d", &amount);
if (amount < 0) {
printf("输入金额必须为非负数");
return 1;
}

// 查找当前输入金额所对应的折扣率
for (i = 0; i < 4; i++) {
if (amount >= arrAmount[i]) {
index = i;
break;
}
}
// 当前金额对应的折扣率计算
switch(index) {
case 0:
discount = arrDiscount[0];
realAmount = amount * arrDiscount[0];
break;
case 1:
discount = arrDiscount[1];
realAmount = amount * arrDiscount[1];
break;
case 2:
discount = arrDiscount[2];
realAmount = amount * arrDiscount[2];
break;
case 3:
discount = arrDiscount[3];
realAmount = amount * arrDiscount[3];
break;
default:
return 1;

}

printf("折扣率:%.2lf, 实际金额:%.2lf", discount, realAmount);
return 0;
}

这道题真正的难点在于根据金额查找到对应的折扣率,通过从1000到0所有梯度的金额对比就能得到输入金额对应的折扣率。

百度网友a0ee653
2019-03-28 · 贡献了超过528个回答
知道答主
回答量:528
采纳率:3%
帮助的人:37.9万
展开全部
😄😄😄😄😄😄😄
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式