正文

C基础练习源程序(部分)转2007-12-10 21:07:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/chaotic/31361.html

分享到:

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

阅读(1670) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册