首页 > 试题广场 >

企业发放的奖金根据利润提成。利润I低于或等于100000元的

[问答题]

企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提10%

利润高于100000元,低于200000元(100000<I200000)时,低于100000元的部分按10%

提成,高于100000元的部分,可提成7.5%200000<I<400000时,低于200000元的部分

仍按上述办法提成(下同)。高于200000元的部分按5%提成;400000<I<600000元时,高

400000元的部分按3%提成;600000<I<1000000时,高于600000元的部分按1.5%

成:I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖

金总数。

要求:

1)用if语句编程序;

2)用switch语句编程序。

推荐

1.

#include <stdio.h>

int main( )

{

int i;

double bonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+100000*0.05;

bon6=bon4+100000*0.03;

bon10=bon6+400000*0.015;

printf("请输入利润i:”);

scanf("%d",&i);

if(i<=100000)

bonus=i*0.1;

else if(i<=200000)

bonus=bon1+(i-100000)*0.075;

else if(i<=400000)

bonus=bon2+(i-200000)*0.05;

edse if(i<=600000)

bonus=bon4+(i-400000)*0.03;

else if(i<=1000000)

bonus=bon6+(i-600000)*0.015;

else

bonus=bon10+(i-1000000)*0.01;

printf("奖金是:%10.2f\n",bonus);

return 0;

}


2.

#include<stdio.h>

int main( )

{

int i;

double bonus,bon1,bon2,bon4,bon6,bon10;

int branch;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+200000*0.05;

bon6=bon4+200000*0.03;

bonl0=bon6+400000*0.015;

printf(“请输入利润i:");

scanf("%d",&i);

branch=i/100000;

if(branch>10)branch=10;

switch(branch)

{  case 0:borus=i*0.1;break;

case 1:bonus=bon1+(i-100000)*0.075;break;

case2:

case 3:bonus=bon2+(i-200000)*0.05;break;

case4:

case 5:bonus=bon4+(i-400000)*0.03;break;

case 6:

case 7:

case 8:

case 9:bonus=bon6+(i-600000)*0.015;break;

case 10:bonus=bonlO+(i-1000000)*0.01;

}

printf("奖金是%10.2f\n",bonus);

return 0;

}


发表于 2018-03-25 10:51:07 回复(2)
#include<stdio.h>
#include<cstdlib> //exit函数在此库中 
int main(){
	int i,bonus;
	printf("请输入本月利润:");
	scanf("%d",&i);
	
	//if
//	if(i<0)
//		printf("输入错误!");
//	if(i<=100000)
//		bonus=i*0.1;
//	else if(i>100000&&i<=200000)
//		bonus=100000*0.1+(i-100000)*0.075;
//	else if(i>200000&&i<=400000)
//		bonus=100000*0.1+100000*0.075+(i-200000)*0.05;
//	else if(i>400000&&i<=600000)
//		bonus=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03;
//	else if(i>600000&&i<=1000000)
//		bonus=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015;
//	else
//		bonus=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01;
//	printf("应发奖金为:%d",bonus);
	//if end

	//switch
	int op=0;
	if(i>=0&&i<=100000)	//增加i>=0,为了将小于0的输入情况留到default处理(与上面的if相区别) 
		op=1;
	else if(i>100000&&i<=200000)
		op=2;
	else if(i>200000&&i<=400000)
		op=3;
	else if(i>400000&&i<=600000)
		op=4;
	else if(i>600000&&i<=1000000)
		op=5;
	else if(i>1000000)
		op=6;
	 
	switch(op){
		case 1:
			bonus=i*0.1;
			break;
		case 2:
			bonus=100000*0.1+(i-100000)*0.075;
			break;
		case 3:
			bonus=100000*0.1+100000*0.075+(i-200000)*0.05;
			break;
		case 4:
			bonus=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03;
			break;
		case 5:
			bonus=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015;
			break;
		case 6:
			bonus=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01;
			break;
		default:
			printf("输入错误!");
			exit(0); 
	}
	printf("应发奖金为:%d",bonus);
	//switch end

	return 0;
}

发表于 2021-01-12 11:47:50 回复(0)