您的位置:首页 > 编程语言 > C语言/C++

C语言练习作业(二)

2015-11-12 14:14 447 查看
又是一个费了不少劲的难题,主要是数据类型比较麻烦,一直在翻资料,还好最后做到了无警告。

应该用“%f”输出的,用成了“%d”;

改成“%.2f”后,输出结果只剩两个小数点;

long fuck = (long)lirun / 100000;
,一开始没有用显式的类型转换,所以会有警告;

有些要点还是查看答案才想明白的,不能完全算是独立完成;

代码还有改进的余地,不过懒得改了。

题目: 企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提成10%;利润高于10万元,低于20万元(100000< I≤200000)时,其中10万元按10%提成,高于10万元的部分,可提成7.5% ;200000< I≤400000时,其中20万元仍按上述办法提成(下同),高于20万元的部分按5%提成;400000< I≤600000时,高于40万元的部分按3%提成;600000< I≤1000000时,高于60万的部分按1.5%提成;I>1000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用if语句编程序;(2)用switch语句编程序。

#include<stdio.h>
int main()
{
double lirun = 0;//当年利润
double jiangjin = 0;//应发奖金
printf_s("请输入当年利润:\n");
scanf_s("%lf", &lirun);
/*if (lirun <= 100000)
{
jiangjin = lirun*0.1;
printf_s("应发奖金为:%d", jiangjin);
}
else if (lirun > 100000 && lirun <= 200000)
{
jiangjin = 10000 + (lirun - 10000)*0.075;
printf_s("应发奖金为:%d", jiangjin);
}
else if (lirun > 200000 && lirun <= 400000)
{
jiangjin = 10000 + 100000 * 0.075 + (lirun - 200000)*0.05;
printf_s("应发奖金为:%d", jiangjin);
}
else if (lirun > 400000 && lirun <= 600000)
{
jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (lirun - 400000)*0.03;
printf_s("应发奖金为:%d", jiangjin);
}
else if (lirun > 600000 && lirun <= 1000000)
{
jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (lirun - 600000)*0.015;
printf_s("应发奖金为:%d", jiangjin);
}
else
{
jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (lirun - 1000000)*0.01;
printf_s("应发奖金为:%d", jiangjin);
}*/

long fuck = (long)lirun / 100000;
if (fuck > 10)
fuck = 10;
switch (fuck)
{
case 0:
jiangjin = lirun*0.1;
printf_s("应发奖金为:%.2f", jiangjin);
break;
case 1:
jiangjin = 10000 + (lirun - 10000)*0.075;
printf_s("应发奖金为:%.2f", jiangjin);
break;
case 2:
case 3:
jiangjin = 10000 + 100000 * 0.075 + (lirun - 200000)*0.05;
printf_s("应发奖金为:%.2f", jiangjin);
break;
case 4:
case 5:
jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (lirun - 400000)*0.03;
printf_s("应发奖金为:%.2f", jiangjin);
break;
case 6:
case 7:
case 8:
case 9:
jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (lirun - 600000)*0.015;
printf_s("应发奖金为:%.2f", jiangjin);
break;
case 10:
jiangjin = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (lirun - 1000000)*0.01;
printf_s("应发奖金为:%.2f", jiangjin);
break;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言