C语言实战105例子——实例6用if...else语句解决奖金发放问题

版权声明:共同提高:) https://blog.csdn.net/u011436427/article/details/83307485

题目:

在这里插入图片描述

实例解析

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;
}

猜你喜欢

转载自blog.csdn.net/u011436427/article/details/83307485
今日推荐