题目:
实例解析
1.if语句的三种基本形式
(1) if (表达式){语句}
表达式的值为真时,则执行后面花括号的语句。(当只有一条要执行的语句时,不需要加花括号。)
(2) if (表达式){语 句 l} else {语句 2}
表达式的值为真时,则执行后面花括号里的语句1 , 否 则, 执 行 else后面花括号里的语句 2。
(3) if (表 达 式 1) {语 句 l} else if (表达式2) {语 句 2} else{语 句 3}
表 达 式 1 的值为真时,执行后面花括号里的语句1, 程序跳出i f 语句部分,否则,在当表达 式 2 的值为真时,执行后面花括号里的语句2 , 程序跳出i f 语句部分,只有当表达式1和表达 式 2 都不为真时,执行语句3。
2.嵌套if语句
将上述三种基本形式的语句部分替换为另一种基本形式的 if 语句
1)只在i f 语子句中嵌套i f 语句,形式如下:
2)只在else子句中嵌套i f 语句,形式如下:
3)不断在else子句中嵌套if 语句就形成多层嵌套,形式如下
注意:注意i f 与 else匹配的问题
原则是:else总是与前面最近的未匹配的i f 语句相配对
特别强调的是,为 了 避免 if与 else的匹配错误,要使用花括号
/*企业发放的奖金根据利润提成,发放规则如下:
利润(I)低于或等于10万元时,奖金可提10%;
利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;
20万到40万之间时,高于20万元的部分,可提成5%;
40万到60万之间时高于40万元的部分,可提成3%;
60万到100万之间时,高于60万元的部分,可提成1.5%,
高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润I,求应发放奖金总数?*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
long int gain;
int prize1,prize2,prize4,prize6,prize10,prize = 0;
puts("*************************************");
puts("* The program will solve *");
puts("* the problem of prize distribution *");
puts("*************************************");
puts("please input the num of gain:");
scanf("%1d",&gain);
//它这样的写法很好,很清晰
prize1=100000*0.1;
prize2=prize1+100000*0.075;
prize4=prize2+200000*0.05;
prize6=prize4+200000*0.03;
prize10=prize6+400000*0.015;
if(gain<=100000)
prize=gain*0.1;
else if(gain<=200000)
prize=prize1+(gain-100000)*0.075;
else if(gain<=400000)
prize=prize2+(gain-200000)*0.05;
else if(gain<=600000)
prize=prize4+(gain-400000)*0.03;
else if(gain<=1000000)
prize=prize6+(gain-600000)*0.015;
else
prize=prize10+(gain-1000000)*0.01;
printf("The prize is :%d\n",prize);
//getch();
system("pause");
return 0;
}