<1>数字排列。
#include <stdio.h>
int main()
{int sum= 0;for(int i= 1; i< 5; i++){for(int a= 1; a< 5; a++){for(int b= 1; b< 5; b++){if(i!=a && i!=b && a!=b){printf("%d%d%d", i, a, b);putchar('\n');sum= sum+ 1;}}}}printf("%d", sum);return 0;
}
答案有24种。
<2>奖金分配问题。
#include <stdio.h>
int main()
{long int i;int bouns1, bouns2, bouns4, bouns6, bouns10, bouns;scanf("%ld", &i);bouns1= 100000*0.1;bouns2= bouns1+100000*0.75;bouns4= bouns2+200000*0.5;bouns6= bouns4+200000*0.3;bouns10= bouns6+400000*0.15;if(i<= 100000){bouns= i*0.1;}else if(i<= 200000){bouns= bouns1+(i-100000)*0.075;}else if(i<= 400000){bouns= bouns2+(i-200000)*0.05;}else if(i<= 600000){bouns= bouns4+(i-400000)*0.03;}else if(i<= 1000000){bouns= bouns6+(i-600000)*0.015;}else{bouns= bouns10+(i-1000000)*0.01;}printf("bouns=%d", bouns);return 0;
}
<3>已知条件求解整数
#include <stdio.h>
#include <math.h>int is_pownum(int x)
{int temp;temp= sqrt(x);if(temp* temp== x){return 1;}else{return 0;}
}int main()
{int num= 1;for( ; ; num++){if(is_pownum(num+100) && is_pownum(num+169)){printf("%d", num);break;}}return 0;
}
<5>输入整数进行排序。
#include <stdio.h>int main()
{int x, y, z, temp;scanf("%d %d %d", &x, &y, &z);if(x> y){temp= y;y= x;x=temp;}if(x> z){temp= z;z= x;x= temp;}if(y> z){temp= z;z= y;y= temp;}printf("small to big: %d %d %d", x, y, z);return 0;
}
<8>打印99口诀。
#include <stdio.h>
#include <math.h>int main()
{int i, j;for(i= 1; i<= 9; i++){for(j= 1; j<= i; j++){printf("%d*%d=%-2d ", i, j, i*j);}putchar('\n');}return 0;
}
<11>经典兔子问题。
#include <stdio.h>int main()
{long f1, f2;int i;f1=f2=1;for(i= 1; i<= 20; i++){printf("%12ld%12ld", f1, f2);if(i%2==0)printf("\n");f1=f1+f2;f2=f1+f2;}return 0;
}
<12>判断素数
#include <stdio.h>
#include <math.h>int isprim(int n);
int isprim(int n)
{int i, j;j= sqrt(n);for(i= 2; i<= j; i++){if(n%i==0)return 0;}if(i> j){return 1;}
}int main()
{int x, y= 0;for(x= 101; x<= 200; x++){if(isprim(x)){printf("%d ", x);y++;}}putchar('\n');printf("101~200间的素数有%d个!", y);return 0;
}
<14>正整数分解质因数
#include <stdio.h>int main()
{int i, j;printf("please input a number: ");scanf("%d", &i);putchar('\n');printf("%d=", i);for(j= 2; j<= i; j++){while(i!= j){if(i%j== 0){printf("%d*", j);i=i/j;}else{break;}}}printf("%d", i);return 0;
}
<19>求解“完数”
#include <stdio.h>int wanshu(int n)
{int sum=0;int i;for(i= 1; i<= n; i++){if(n%i==0)sum+=i;}if(sum==(n*2)){return 1;}else{return 0;}
}int main()
{int i= 1;for(i= 1; i<= 1000; i++){if(wanshu(i)==1){printf("%-3d", i);}}return 0;
}
<22>乒乓球比赛抽签问题
#include <stdio.h>int main()
{int i= 0;char d;char aa[]={'a','b','c'};char bb[]={'x','y','z'};printf("c--y\n");for(i= 0; ; i++){if(bb[i]!='x' && bb[i]!='y'){printf("a--%c\n",bb[i]);break;}d=bb[i];}for(i= 0; ; i++){if(bb[i]!='y' && bb[i]!=d){printf("b--%c", bb[i]);break;}}return 0;
}
<23>.输入一个奇数,用*打印菱形图案
#include <stdio.h>int main()
{int n;scanf("%d", &n);int i, j;int x= n/2;int y= 1;for(i= 1; i<= n; i++){for(j= 1; j<= x; j++){printf(" ");}for(j= 1; j<= y; j++){printf("*");}if(x>0 && i<= (n/2+1))x--;elsex++;if(i<= (n/2+1) && y< n)y+= 2;elsey-= 2;putchar('\n');}return 0;
}
<25>求1+2!+3!+……+20!的和
#include <stdio.h>int main()
{int i, j;double s= 1, sum= 0;for(i= 1; i<= 20; i++){for(j= i; j>= 1; j--){s= s*j;}sum+= s; s= 1;}printf("1+2!+3!+……+20!=%lf", sum);return 0;
}
<26>利用递归方法求5!
#include <stdio.h>int jiechen(int x)
{if(x> 1)return x*jiechen(x-1);elsereturn x;
}int main()
{int i= 5;printf("5!=%d", jiechen(i));return 0;
}
<28>岁数问题
#include <stdio.h>int age(int x)
{int y;if(x==1)y= 10;elsey= age(x-1)+ 2;return y;
}int main()
{printf("%d", age(5));return 0;
}