zoukankan      html  css  js  c++  java
  • 谭浩强版本C语言课后习题第五章

     1 //输入两个正数mn,求最大公约数和最小公倍数
     2 #include<stdio.h>
     3 int main()
     4 {
     5     int p,r,m,n,temp;
     6     printf("请输入两个正数:
    ");
     7     scanf("%d,%d",&m,&n);
     8     if(n<m)
     9     {
    10         temp=n;
    11         n=m;
    12         m=temp;
    13     }
    14     p=m*n;
    15     while(m!=0)
    16     {
    17         r=n%m;
    18         n=m;
    19         m=r;
    20     }
    21     printf("最大公约数%d
    ",n);
    22     printf("最小公倍数%d
    ",p/n);
    23     return 0;
    24 }

    2/统计一行字符数字字母空格个数

     1 #include<stdio.h>
     2 int main()
     3 {
     4     char c;
     5     int letters=0,space=0,digit=0,other=0;
     6     printf("请输入一个字符:
    ");
     7     while((c=getchar())!='
    ')
     8     {
     9         if(c>='a'&&c<='z'||c>='A'&&c<='Z')
    10             letters++;
    11         else if(c==' ')
    12             space++;
    13         else if(c>='0'&&c<='9')
    14             digit++;
    15         else
    16             other++;
    17     }
    18     printf("字母数:%d
    空格数:%d
    数字数%d
    其他%d
    ",letters,space,digit,other);
    19     return 0;
    20 }

    3、

     1 //求a+aa+...aaaaa,n个a的和
     2 #include<stdio.h>
     3 int main()
     4 {
     5     int a,n,i=1,sn=0,tn=0;
     6     printf("a,n=:");
     7     scanf("%d,%d",&a,&n);
     8     while(i<=n)
     9     {
    10         tn=tn+a;
    11         sn=sn+tn;
    12         a=a*10;
    13         ++i;
    14     }
    15     printf("和为:%d
    ",sn);
    16     return 0;
    17 }

    4/计算1!+2!+3!+。。。+20!

     1 #include<stdio.h>
     2 int main()
     3 {
     4     double s=0,t=1;
     5     int n;
     6     for(n=1;n<=20;n++)
     7     {
     8         t=t*n;
     9         s=s+t;
    10     }
    11     printf("和为:%12.15e
    ",s);
    12     return 0;
    13 }

    5、求1-100的k,1-50的k2,1-10的1/k.

    #include<stdio.h>
    int main()
    {
        int n1=100,n2=50,n3=10;
        double k,s1=0,s2=0,s3=0;
        for(k=1;k<=n1;k++)
        {s1=s1+k;}
        for(k=1;k<=n2;k++)
        {s2=s2+k*k;}
        for(k=1;k<=10;k++)
        {s3=s3+1/k;
        }
        printf("sum=%15.6f/n",s1+s2+s3);
        return 0;
    }

     6、求水仙花数

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int i,j,n,k;
     5     for(i=100;i<1000;i++)
     6     {
     7         j=i/100;
     8         n=i/10-j*10;
     9         k=i%10;
    10         if(i==j*j*j+n*n*n+k*k*k)
    11             printf("水仙花数:%d 
    ",i);
    12     }
    13     return 0;
    14 }

    7、求完数

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int m,s,i;
     5     for(m=2;m<=1000;m++)
     6     { s=0;
     7         for(i=1;i<=m;i++)
     8             if((m%i)==0)
     9                 s=s+i;
    10             if(s==m)
    11             {printf("%d its facters are",m);
    12             for(i=1;i<m;i++)
    13                 if(m%i==0)
    14                     printf("%d",i);
    15                 printf("
    ");
    16             }
    17     }
    18 return 0;
    19 }
    20                                 

    8、求2/1,3/2,5/3,8/5。。。前二十项和

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int n;
     5     double i=2,j=1,k,s=0.0;
     6     for(n=1;n<=20;n++)
     7     {
     8     
     9         s=s+i/j;
    10         k=i;
    11         i=i+j;
    12         j=k;
    13     }
    14     printf("sum is %16.10f
    ",s);
    15     return 0;
    16 }

    9、100米掉落小球每次反弹高度为原来的一半,十次后高度?总路程?

     1 #include<stdio.h>
     2 int main()
     3 {
     4     double s=100,h=s/2;
     5     int n;
     6     for(n=2;n<=10;n++)
     7     {
     8         s=s+2*h;
     9         h=h/2;
    10     }
    11     printf("十次共经过%f 米
    ",s);
    12     printf("第十次反弹%f 米
    ",h);
    13     return 0;
    14 }

    10、猴子偷桃问题

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int day=9,x1,x2=1;
     5     while(day>0)
     6     {
     7         x1=(x2+1)*2;
     8         x2=x1;
     9         day--;
    10     }
    11     printf("total=%d
    ",x1);
    12     return 0;
    13 }

     11、用迭代法求平方根

     1 #include<stdio.h>
     2 #include<math.h>
     3 int main()
     4 {
     5     float a,x0,x1;
     6     printf("enter a:
    ");
     7     scanf("%f",&a);
     8     x0=a/2;
     9     x1=(x0+a/x0)/2;
    10     do
    11     {
    12         x0=x1;
    13         x1=(x0+a/x0)/2;
    14     }
    15     while(fabs(x0-x1)>=1e-5);
    16     printf("the square root of %5.2f is%8.5f
    ",a,x1);
    17     return 0;
    18 }

    12、迭代法求2x3-4x2+3x-6=0的根

     1 #include<stdio.h>
     2 #include<math.h>
     3 int main()
     4 {
     5     double x1,x0,f,f1;
     6     x1=1.5;
     7     do{
     8         x0=x1;
     9         f=((2*x0-4)*x0+3)*x0-6;
    10         f1=(6*x0-8)*x0+3;
    11         x1=x0-f/f1;
    12     }
    13     while(fabs(x1-x0)>=1e-5);
    14     printf("the root is%5.2f
    ",x1);
    15     return 0;
    16 }

    13、用二分法求方程的根

     1 #include<stdio.h>
     2 #include<math.h>
     3 int main()
     4 {
     5     float x0,x1,x2,fx0,fx1,fx2;
     6     do
     7     {printf("please enter x1 x2:,");
     8     scanf("%f,%f",&x1,&x2);
     9     fx1=x1*((2*x1-4)*x1+3)-6;
    10     fx2=x2*((2*x2-4)*x2+3)-6;
    11     }while(fx1*fx2>0);
    12     do{
    13         x0=(x1+x2)/2;
    14         fx0=x0*((2*x0-4)*x0+3)-6;
    15         if((fx0*fx1)<0)
    16         {x2=x0;
    17         fx2=fx0;
    18         }
    19         else
    20         {x1=x0;
    21         fx1=fx0;
    22         }
    23     }while(fabs(fx0)>=1e-5);
    24     printf("x=%6.2f
    ",x0);
    25     return 0;
    26 }

    14、输出菱形

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int i,j,k;
     5     for(i=0;i<=3;i++)
     6     {
     7         for(j=0;j<=2-i;j++)
     8             printf(" ");
     9         for(k=0;k<=2*i;k++)
    10             printf("*");
    11         printf("
    ");
    12     }
    13     for(i=0;i<=2;i++)
    14     {
    15         for(j=0;j<=i;j++)
    16             printf(" ");
    17         for(k=0;k<=4-2*i;k++)
    18             printf("*");
    19         printf("
    ");
    20     }
    21     return 0;
    22 }

    15、乒乓球比赛匹配

     1 #include<stdio.h>
     2 int main()
     3 {
     4     char i,j,k;
     5     for(i='x';i<='z';i++)
     6         for(j='x';j<='z';j++)
     7             if(i!=j)
     8                 for(k='x';k<='z';k++)
     9                     if(i!=k&&j!=k)
    10                         if(i!='x'&&k!='x'&&k!='z')
    11                             printf("A   %c
    B   %c
    C   %c
    ",i,j,k);
    12                         return 0;
    13 }
  • 相关阅读:
    UIViewcontroller生命周期方法
    runtime中的宏定义解释表
    opencv在Mac环境下的安装和配置
    Oracle导入导出
    Oracle触发器详解
    查找表的父表和子表
    Oracle创建表空间
    TRIGGER控制级联更新
    启动Oracle的bat文件
    PL(SQL)块
  • 原文地址:https://www.cnblogs.com/1998wdq/p/11266226.html
Copyright © 2011-2022 走看看