主题:求助 关于C语言的
成长的烦恼
[专家分:0] 发布于 2007-05-07 22:53:00
比较3个数 并输出最大值 在比较过程中可以
max=a;
if(max<b)max=b;
if(max<c)max=c;
运行结果是没有任何问题,可怎么理解电脑是如何判断b,c的大小的呢?[em10]
回复列表 (共5个回复)
沙发
aaronwang [专家分:16870] 发布于 2007-05-08 16:46:00
直接比较啊???
要不你就看一下反汇编代码.就明白了.
板凳
moso3 [专家分:50] 发布于 2007-05-09 19:22:00
首先先将A的值赋给MAX,此时的MAX是最小值,然后第二步看如果B大于MAX(也就是A的值)
那么就将B的值给MAX,最后如果C大于MAX(此时为B的值),那么把C的值给MAX,最终输出的就是最大值.
3 楼
jxfhx [专家分:130] 发布于 2007-05-10 18:39:00
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 楼
chwen822 [专家分:1540] 发布于 2007-05-13 12:26:00
[em1][em1][em1][em1]
比较三个数的大小可用以下方法
[size=5][color=FF0000]max=(a>b?a:b)>c ? (a>b?a:b):c;[/color][/size]
可以的话就别忘了评分哟!!
5 楼
ellin231 [专家分:90] 发布于 2007-05-20 21:28:00
[quote]首先先将A的值赋给MAX,此时的MAX是最小值,然后第二步看如果B大于MAX(也就是A的值)
那么就将B的值给MAX,最后如果C大于MAX(此时为B的值),那么把C的值给MAX,最终输出的就是最大值.[/quote]
意思差不多,有一点问题,就是“首先先将A的值赋给MAX,此时的MAX是最小值”中,MAX是A的值,不一定是最小值
我来回复