为什么我这个很简单程序运行结果计算不正确?请问哪个步骤错误了?

今天c语言的一道作业题,就是根据营业额来计算奖金,但是我的程序老是算不正确,好难过... 今天c语言的一道作业题,就是根据营业额来计算奖金,但是我的程序老是算不正确,好难过 展开
 我来答
紫薇参星
科技发烧友

2021-06-08 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3469万
展开全部

因为你的程序所有的case后面都少了一个空格,所以导致输入任何值都执行default部分,自然数值不对,

比如你输入1000,程序执行default部分,b=10000+7500+10000+6000+6000-9990=29510

把所有的case后面都加一个空格就行了,另外相同的case语句可以省略,象下面的程序一样.

完整的程序如下

#include<stdio.h>

int main(){

 int a;

 float b;

 printf("请输入你的营业额:");

 scanf("%d",&a);

 switch(a/100000){

  case 0:b=0.1*a;break;

  case 1:b=0.1*100000+(a-100000)*0.075;break;

  case 2:

  case 3:b=0.1*100000+0.075*100000+(a-200000)*0.05;break;

  case 4:

  case 5:b=0.1*100000+0.075*100000+0.05*200000+(a-400000)*0.03;break;

  case 6:

  case 7:

  case 8:

  case 9:b=0.1*100000+0.075*100000+0.05*200000+200000*0.03+(a-600000)*0.015;break;

 default:b=0.1*100000+0.075*100000+0.05*200000+200000*0.03+400000*0.015+(a-1000000)*0.01;break;

 }

 printf("奖金是%.2f",b);

 return 0;

}

shine1991
科技发烧友

2021-06-08 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部

每个case分支的最后加上break;

不然就会从当前分支开始继续往下执行,而不会跳出

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式