回 帖 发 新 帖 刷新版面

主题:求助  关于C语言的

比较3个数 并输出最大值  在比较过程中可以
max=a;
if(max<b)max=b;
if(max<c)max=c;
运行结果是没有任何问题,可怎么理解电脑是如何判断b,c的大小的呢?[em10]

回复列表 (共5个回复)

沙发

直接比较啊???
要不你就看一下反汇编代码.就明白了.

板凳

首先先将A的值赋给MAX,此时的MAX是最小值,然后第二步看如果B大于MAX(也就是A的值)
那么就将B的值给MAX,最后如果C大于MAX(此时为B的值),那么把C的值给MAX,最终输出的就是最大值.

3 楼

main()
{
    int a,b,c,m,n,q;
    scanf("%d,%d,%d",&a,&b,&c);
    m=max1(a,b);
    n=max2(b,c);
    q=max(m,n);
    printf("max=%d",q);
}
   int max1(int x1,int y1)
   {int z1;
   if(x1>y1) z1=x1;
   else z1=y1;
   return(z1);
   }
   int max2(int x2,int y2)
   {int z2;
   if(x2>y2) z2=x2;
   else z2=y2;
   return(z2);
   }
   int max(int x,int y)
   {int z;
   if(x>y) z=x;
   else z=y;
   return(z);
   }
我看完谭浩强c语言第一章后 这么编写的,运行成功了

4 楼


[em1][em1][em1][em1]
  比较三个数的大小可用以下方法
  [size=5][color=FF0000]max=(a>b?a:b)>c ?  (a>b?a:b):c;[/color][/size]
   可以的话就别忘了评分哟!!

5 楼

[quote]首先先将A的值赋给MAX,此时的MAX是最小值,然后第二步看如果B大于MAX(也就是A的值)
那么就将B的值给MAX,最后如果C大于MAX(此时为B的值),那么把C的值给MAX,最终输出的就是最大值.[/quote]

意思差不多,有一点问题,就是“首先先将A的值赋给MAX,此时的MAX是最小值”中,MAX是A的值,不一定是最小值

我来回复

您尚未登录,请登录后再回复。点此登录或注册