经典C程序100例
题外话:立个flag,通透并动手敲完经典C程序100例;以此作记,持续更新……
01 三位数
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:
可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列;1 百 十 个 这三位上的数字 互不相同 且 无重复 数字 ,2 输出符合条件的三位数 和 满足条件三位数的个数
程序设计:
#include<stdio.h>
int main(void){
int g,s,b;
int count=0;
for(b=1;b<5;b++){
for(s=1;s<5;s++){
for(g=1;g<5;g++){
if(b!=s&&b!=g&&s!=g){
printf("%d,%d,%d\n",b,s,g);
count++;
}
}
}
}
printf("count=%d\n",count);
return 0;
}
02 求利润
题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
程序分析:由题设信息,我们可以列出分段函数,然后由定义域作为 if 判断条件,设计程序,求解问题。
程序设计:
#include<stdio.h>
int main(void){
int profit = 0;
int bonus = 0;
int bonus1 = 100000*0.1;
int bonus2 = bonus1 + 100000*0.075;
int bonus3 = bonus2 + 200000*0.05;
int bonus4 = bonus3 + 200000*0.03;
int bonus5 = bonus4 + 400000*0.015;
scanf("%d",&profit);
if(profit<=100000){
bonus = profit*0.1;
}else if(profit<=200000){
bonus = bonus1 + (profit-100000)*0.075;
}else if(profit<=400000){
bonus = bonus2 + (profit-200000)*0.05;
}else if(profit<=600000){
bonus = bonus3 + (profit-400000)