C语言经典例题(菜鸟教程100例)来自---文章作者:zwish
第二题:分不同范围计算数据
涉及double双精度浮点数,sacnf_s()输入语句,if判断语句
#include<stdio.h>
int main() {
/*
问题:企业发放的奖金根据利润(I)提成。
I<=10万元时,奖金可提10%;
10万<I<=20万,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
20万<I<=40万,高于20万元的部分,可提成5%;
40万<I<=60万,高于40万元的部分,可提成3%;
60万<I<=100万,高于60万元的部分,可提成1.5%;
100万<I,超过100万元的部分按1%提成。
从键盘输入当月利润I,求应发放奖金总数?
*/
//Double双精度浮点数,该类型使用64位存储空间,为了更精确
double i;
double b1, b2, b4, b6, b10, bonus;//bonus中文含义奖金
printf("企业利润为:\n");//提示输入企业利润,\n表示换行
//scanf("%lf", &i);
/*
scanf它是格式输入函数,
即按用户指定的格式从键盘上把数据输入到指定的变量之中,
%lf对输入数据取值,这里lf表示数据类型为双精度数字,
&+变量名是对变量取地址,将前面输入的数放入这个变量对应地址存储
提示scanf函数不安全,请考虑改用scanf_s
*/
scanf_s("%lf", &i);
b1 = 100000 * 0.1;//利润为10万时的奖金
b2 = b1 + 100000 * 0.075;//利润为20万时的奖金
b4 = b2 + 200000 * 0.05;//利润为40万时的奖金
b6 = b4 + 200000 * 0.03;//利润为60万时的奖金
b10 = b6 + 400000 * 0.015;//利润为100万时的奖金
if (i <= 100000) {
bonus = i * 0.1;//I<=10万元时,奖金可提10%;
}
else if (i <= 200000) {
bonus = b1 + (i - 100000) * 0.075;
//10万 < I <= 20万,低于10万元的部分按10 % 提成,高于10万元的部分,可提成7.5 % ;
}
else if (i <= 400000) {
bonus = b2 + (i - 200000) * 0.05;
//20万 < I < =40万,高于20万元的部分,可提成5 % ;
}
else if (i <= 600000) {
bonus = b4 + (i - 400000) * 0.03;
//40万 < I <= 60万,高于40万元的部分,可提成3 % ;}
}
else if (i <= 1000000) {
bonus = b6 + (i - 600000) * 0.015;
//60万 < I <=100万,高于60万元的部分,可提成1.5 % ;
}
else if (i > 1000000) {
bonus = b10 + (i - 1000000) * 0.01;
//100万 < I,超过100万元的部分按1 % 提成。
}
printf("提成的奖金为:%lf", bonus);
/*
printf("%lf", t);
%lf输出对应数字,
这里lf表示数据类型为双精度数字
*/
}