background image

【程序 1  

题目:有 1、2、3、4

 

个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

1.程序分析:可填在百位、十位、个位的数字都是 1、2、3、4

 

。组成所有的排列后再去

 

掉不满足条件的排列。

2.

 

程序源代码:

main() { 

int i,j,k; 

printf("\n"); 

for(i=1;i<5;i++) /*以下为三重循环*/ 

for(j=1;j<5;j++) 

for (k=1;k<5;k++) { 

if (i!=k&&i!=j&&j!=k) /*确保 i、j、k 三位互不相同*/ 

printf("%d,%d,%d\n",i,j,k); }} 

============================================================== 

【程序 2  

题目:企业发放的奖金根据利润提成。利润(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

 

,求应发放奖金总数?

1.

 

程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

2.

 

程序源代码:

main() { 

long int i; 

int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; 

scanf("%ld",&i); 

bonus1=100000*0.1;bonus2=bonus1+100000*0.75; 

bonus4=bonus2+200000*0.5; 

bonus6=bonus4+200000*0.3; 

bonus10=bonus6+400000*0.15; 

if(i<=100000) 

bonus=i*0.1; 

else if(i<=200000) 

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

else if(i<=400000) 

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

else if(i<=600000) 

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

else if(i<=1000000) 

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

else 

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

printf("bonus=%d",bonus); } 

==============================================================