Loading...
  所在位置:论坛首页 -> 计算机科学与技术 -> 程序设计 -> c语言习题答案(第5章,新版第6章)(潭浩强,清华出版社)
回复

c语言习题答案(第5章,新版第6章)(潭浩强,清华出版社)

作者:pp 时间:2007-12-15 14:35:37 收藏 编辑

第五章  循环控制
5.1
main()
{int a,b,num1,num2,temp;
 scanf("%d,%d",&num1,&num2);
 if(num1<num2){temp=num1;num1=num2;num2=temp;}
 a=num1;b=num2;
 while(b!=0)
   {temp=a%b;
    a=b;
    b=temp;}
 printf("%d\n",a);
 printf("%d\n",num1*num2/a);
}

5.2
#include"stdio.h"
main()
{char c;
 int letters=0,space=0,digit=0,other=0;
 while((c=getchar())!='\n')
   {if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++;
    else if(c==' ')space++;
    else if(c>='0'&&c<='9')digit++;
    else other++;
   }
 printf("letters=%d\nspace=%d\ndigit=%d\nother=%d\n",letters,space,digit,other);
}

5.3
main()
{int a,n,count=1,sn=0,tn=0;
 scanf("%d,%d",&a,&n);
 while(count<=n)
   {tn+=a;
    sn+=tn;
    a*=10;
    ++count;
   }
 printf("a+aa+aaa+...=%d\n",sn);
}

5.4
main()
{float n,s=0,t=1;
 for(n=1;n<=20;n++)
   {t*=n;
    s+=t;
   }
 printf("s=%e\n",s);
}

5.5
main()
{int N1=100,N2=50,N3=10;
 float k;
 float s1=0,s2=0,s3=0;
 for(k=1;k<=N1;k++)s1+=k;
 for(k=1;k<=N2;k++)s2+=k*k;
 for(k=1;k<=N3;k++)s3+=1/k;
 printf("s=%8.2f\n",s1+s2+s3);
}

5.6
main()
{int i,j,k,n;
 for(n=100;n<1000;n++)
   {i=n/100;
    j=n/10-i*10;
    k=n%10;
    if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
         printf("n=%d\n",n);
    }
}

5.7
#define M 1000
main()
{int k0,k1,k2,k3,k4,k5,k6,k7,k8,k9;
 int i,j,n,s;
 for(j=2;j<=M;j++)
   {n=0;
    s=j;
    for(i=1;i<j;i++)
      {if((j%i)==0)
         {n++;
          s=s-i;
          switch(n)
            {case 1:k0=i;break;
             case 2:k1=i;break;
             case 3:k2=i;break;
             case 4:k3=i;break;
             case 5:k4=i;break;
             case 6:k5=i;break;
             case 7:k6=i;break;
             case 8:k7=i;break;
             case 9:k8=i;break;
             case 10:k9=i;break;
            }
           }
         }
      if(s==0)
        {printf("j=%d\n",j);
         if(n>1)printf("%d,%d",k0,k1);
         if(n>2)printf(",%d",k2);
         if(n>3)printf(",%d",k3);
         if(n>4)printf(",%d",k4);
         if(n>5)printf(",%d",k5);
         if(n>6)printf(",%d",k6);
         if(n>7)printf(",%d",k7);
         if(n>8)printf(",%d",k8);
         if(n>9)printf(",%d\n",k9);
         }
       }
}

main()
{static int k[10];
 int i,j,n,s;
 for(j=2;j<=1000;j++)
   {n=-1;
    s=j;
    for(i=1;i<j;i++)
      {if((j%i)==0)
         {n++;
          s=s-i;
          k[n]=i;
         }
       }
    if(s==0)
      {printf("j=%d\n",j);
       for(i=0;i<n;i++)
         printf("%d,",k[i]);
       printf("%d\n",k[n]);
      }
    }
}

5.8
main()
{int n,t,number=20;
 float a=2;b=1;s=0;
 for(n=1;n<=number;n++)
   {s=s+a/b;
    t=a,a=a+b,b=t;
    }
 printf("s=%9.6f\n",s);
}

5.9
main()
{float sn=100.0,hn=sn/2;
 int n;
 for(n=2;n<=10;n++)
   {sn=sn+2*hn;
    hn=hn/2;
   }
 printf("sn=%f\n",sn);
 printf("hn=%f\n",hn);
}

5.10
main()
{int day,x1,x2;
 day=9;
 x2=1;
 while(day>0)
   {x1=(x2+1)*2;
    x2=x1;
    day--;
    }
 printf("x1=%d\n",x1);
}

5.11
#include"math.h"
main()
{float a,xn0,xn1;
 scanf("%f",&a);
 xn0=a/2;
 xn1=(xn0+a/xn0)/2;
 do
   {xn0=xn1;
    xn1=(xn0+a/xn0)/2;
   }
 while(fabs(xn0-xn1)>=1e-5);
 printf("a=%5.2f\n,xn1=%8.2f\n",a,xn1);
}

5.12
#include"math.h"
main()
{float x,x0,f,f1;
 x=1.5;
 do
   {x0=x;
    f=((2*x0-4)*x0+3)*x0-6;
    f1=(6*x0-8)*x0+3;
    x=x0-f/f1;
   }
 while(fabs(x-x0)>=1e-5);
 printf("x=%6.2f\n",x);
}

高级回复

操作选项: 评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖
  首页
Copyright 2006-2012 HistoryCreator.com Powered By: BBSGood 5
吉ICP备06005902号