C语言基础类的。这些都是在近两年中陆续写就的。在TC2.01或者DEV C++下面编译通过。用来给学生上课还是不错的。以@隔开每个程序: @ /*一百钱买100只鸡。cock五元一只,then三元一只,chicken一元三只。求cock,*//*then,chicken的各数。*/#includemain(){ int x,y,z,r; for(x=0;x<=25;x++) for(y=0;y<=33;y++) for(z=0;z<=100;z++) /*此题是穷举法的运用一例。当它们的个数满足下面的条件的时候则运算成功*//*每种鸡从0考察到100元的情况,同时小鸡数要能被3整除*/ if((x+y+z==100)&&(5*x+3*y+z/3==100)&&(z%3==0)) printf("cock=%d,then=%d,chicken=%d\n",x,y,z);} @ /*用递归求谭本上的一个函数*/ float p(int n,float x){ if (n==0) return(1); else if (n==1) return(x); else return(((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n);}main(){ int a=3; float b=4; printf("%10.2f\n",p(a,b));} @ /*求最大公约数的两种写法*/ #includemain(){ int i,m,n,y,b; scanf("%d%d",&m,&n); for(i=1;i<=(m>n?n:m);i++) if ((m%i==0)&&(n%i==0)) y=i; /*上面这句将记录公约数,但每次记录后都存在y中,最后循环剩下的就是最大的*/ /*下面这句是求最小公倍数*/ b=(m*n)/y; printf("%d\n%d",y,b); } @ #includemain(){ int m,n,y,b,i,j; scanf("%d\n%d",&m,&n); if (m>n) { i=m; j=n;} else { i=n; j=m;} while(j!=0) { y=i%j; i=j; j=y; } printf("the max yueis %d\n",i); printf("the min beiis %d\n",(m*n)/i); } @ /*冒泡法*/ #includemain(){ int a[11]; int i,j,m,n; printf("please input:"); for(i=0;i<10;i++) scanf("%d",&a[i]); a[10]=0; for(j=0;j<10;j++) for(m=0;m<10;m++) if (a[j] printf("the number is:"); for(n=0;n<10;n++) printf("%4d",a[n]); } @ /*Hanoi经典问题*/ #include int i;/*全局变量*/void move(char x,char y){ printf("%c-->%c\t",x,y);/*输出移动顺序*/ i++; if (i%8==0) printf("\n"); }void hanoi(int n,char a,char b,char c){ if (n==1) move(a,c); else { hanoi(n-1,a,c,b);/*将在a上的n-1个盘借助c移到b盘上*/ move(a,c);/*将最后一个盘从A移到C上*/ hanoi(n-1,b,a,c);/*将n-1个盘再从b借助a移到c上*/ } }main(){ int j=32; hanoi(j,'A','B','C'); } @ /*递归初步*/ float jc(int n){ float z; if (n==1) z=1;else z=n*jc(n-1); /*递归的关键是if语句*/ return z; }main(){ int i=10; printf("%10.2f\n",jc(i));} @ /*筛法排序*/ #include#includemain(){ int i,j,k,m,a[101]; for (i=0;i<=100;i++) a[i]=i;/*将a[i]数组赋给初始值0-100*/ for(j=2;j<100;j++)/*2-100作为筛子,100也可被sqrt(100)既10来代替。如果j=1则a[k]全部被清0*/ for(k=2;k<=100;k++)/*被筛去的数的下一个数a[k]拿去筛,如果k从2开始则a[k]全部清0*/ if ((a[k]%j==0)&&(a[k]!=0)) a[k]=0;/*没被筛掉的并且余数为0的清为0*/ for (m=0;m<=100;m++)/*打印*/ {if (a[m]!=0) printf("%4d",a[m]); } } @ /*自编string copy 函数*/ #includestrncpy(char str1[],char str2[],int x,int y){ int i; for(i=0;i

评论