新手C语言入门,必定会接触到选择结构,而选择结构,任课老师也必定讲过if和switch两种选择。
而谭浩强教授所做的课本课后习题中,企业发放奖金根据利润提成也是选择结构中的经典习题,在这里,我为大家带来这两种方法的具体做法,可能会有不足,欢迎大家能够指出来。
首先是由switch语句进行的编写,因为小编喜欢用switch,所以放在了前面。
int main() //头文件需自己补充,我这里只给出源文件的代码
{
int a,b;
float sum;
printf("请输入当月利润:"); //加入此行便于运行时能够直观体现
scanf("%d", &a);
b = a / 100000;
switch (b) //switch语句编写,下方if语句编写
{
case 0:
printf("奖金总数=%.2f", sum = a * 0.1);
break;
case 1:
printf("奖金总数=%.2f", sum = 10000 + (a - 100000) * 0.075);
break;
case 2:
case 3:
printf("奖金总数=%.2f", sum = 10000 + 7500 + (a - 200000) * 0.05);
break;
case 4:
case 5:
printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + (a - 400000) * 0.03);
break;
case 6:
case 7:
case 8:
case 9:
printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + (a - 600000) * 0.015);
break; //以上时前五种大的分类
default:
printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + 6000 + (a - 1000000) * 0.01);
break; //这是最后的一大分类,需要明确区分
}
return 0;
}
接下来是if语句的编写,如有错处,欢迎指出,小编定会及时修改。
int main() //仍旧没有头文件,需自己补充
{
int a;
float b, sum;
printf("请输入当月利润");
scanf("%d", &a);
b = a / 100000;
if (b >= 0 && b <= 1) //if语句输出
printf("奖金总数=%.2f", sum = a * 0.1);
else if (b > 1 && b <= 2)
printf("奖金总数=%.2f", sum = 10000 + (a - 100000) * 0.075);
else if (b > 2 && b <= 4)
printf("奖金总数=%.2f", sum = 10000 + 7500 + (a - 200000) * 0.05);
else if (b > 4 && b <= 6)
printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + (a - 400000) * 0.03);
else if (b > 6 && b <= 10)
printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + (a - 600000) * 0.015);
else //以上是五种能给出具体范围的,下方最后一个是1000000元以上的
printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + 6000 + (a - 1000000) * 0.01);
return 0;
}
以上便是此问题中的两种基本解决方法。
重要的事情说三遍:
如有不足请指出,定及时改正。
如有不足请指出,定及时改正。
如有不足请指出,定及时改正。
更多推荐
C语言企业发放奖金根据利润提成问题解答
发布评论