谭浩强第五版第二章4题答案

4.用传统流程图表示求解以下问题的算法。

 (1)有两个瓶子 A 和 B,分别盛放醋和酱油,要求将它们互换(即 A 瓶原来盛醋, 盛酱油,B 瓶则相反)

#include <stdio.h>

void main()

{ int a,b,t;

  scanf("a=%d,b=%d",&a,&b);

  t=a;

  a=b;

  b=t;

  printf("a=%d,b=%d\n",a,b);

}

 

(2)依次将 10 个数输人,要求输出其中最大的数。

#include <stdio.h>

      int main(){

     int a[10];

     int i,max;

     max=0;

     for(i=0;i<10;i++){

        scanf("请输入第%d个数:%d",i,&a[i]);

       if(i>=1){

         if(a[i-1]<a[i]){

           max=a[i];

          }

      } 

    }

   printf("十个数中最大的数为:%d\n",max);

  return 0;

}

3.有 3 个数 a,b,c,要求按大小顺序把它们输出。

#include <stdio.h>

int main()

{int a,b,c;

 printf("请输入3个整数:");

 scanf("%d,%d%,d",&a,&b,&c);

 if(a<b)

     if(b<c)

         printf("max=%d,\n",c);

     else

         printf("max=%d\n",b);

     else if(a<c)

         printf("max=%d\n",c);

     else

         printf("max=%d",a);

     return 0;

}

 



(4)求 1+2+3+…+100。

#include <stdio.h>

int main(){     

      int i=1,total=0;

      for(i;i<=100;i++){

         total+=i;

      }

      printf("%d\n",total);

            return 0;

}


(5)判断一个数 n 能否同时被 3 和 5 整除。

 

#include <stdio.h>

int main(){     

    int n;

    printf("请输入一个数n:\n");

    scanf("%d",&n);

    if((n%3==0)&&(n%5==0)){

           printf("%d可以同时被3和5整除\n",n);

    }else{

                  printf("%d不可以同时被3和5整除\n",n);

    }

            return 0;

 

 

 

 

 

(6)将 100~200 之间的素数输出。

 

#include <stdio.h>

int main(){     

   int i=0,count=0;

   for(i=100;i<=200;i++){

     int j=0;

      for(j=2;j<=i;j++){

           if(i%j==0){

                  break;

             }

         }

         if(i==j){

           count++;

           printf("%d ",i);

      }

   }

   printf("\ncount=%d\n",count);

            return 0;

}

 



(7)求两个数 m 和n的最大公约数。

#include<stdio.h>

 int main()

{

    int m,n,r,t;

    scanf("%d,%d",&m,&n);

    printf("%d和%d的最大公约数是\n",m,n);

    if(m<n)

    {

        t=m;

        m=n;

        n=t;

    }

    while(m%n!=0)

    {

        r=m%n;

        m=n;

        n=r;

        }

    printf("%d\n",n);

    return 0;

}


(8)求方程式 ax*+bx+c=0 的根。分别考虑:

①有两个不等的实根;

②有两个相等的实根。

 

#include <stdio.h>

#include <math.h>

int main()

{

double a,b,c,disc,x1,x2,p,q;

scanf("%lf,%lf,%lf",&a,&b,&c);

printf("The equation");

disc=b*b-4*a*c;

if(disc<0)

printf("Tis equation hasn't real roots\n");

else

{p=-b/(2.0*a);

q=sqrt(disc)/(2.0*a);

x1=p+q;x2=p-q;

printf("real roots:\nx1=%7.2f\nx2=%7.2f\n",x1,x2);

}

return 0;

}

#include <stdio.h>

#include <math.h>

int main()

{

double a,b,c,disc,x1,x2,p,q;

scanf("%lf,%lf,%lf",&a,&b,&c);

printf("The equation");

disc=b*b-4*a*c;

if(disc<0)

printf("Tis equation hasn't real roots\n");

else

{p=-b/(2.0*a);

q=sqrt(disc)/(2.0*a);

x1=p+q;x2=p-q;

printf("real roots:\nx1=%7.2f\nx2=%7.2f\n",x1,x2);

}

return 0;

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王某i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值