C语言 比较3个数的大小

来源:百度知道 编辑:UC知道 时间:2024/05/22 17:17:36
用这种方法比较,如下
max=(a>b)?a:b
那么三个数的大小应该这样:
max=(c>(a>b)?a:b)?c:((a>b)?a:b) 这个函数的意思是先比较 a跟b的大小,然后得出其中的大者再跟c比较。
这样对吗?为什么我得不出来结果?
程序过程是这样的:
main()
{
int a,b ,c,max;
printf("input the 3 numbers:\n");
scanf("%d%d%d",&a,&b,&c);
max=(c>(a>b)?a:b)?c:((a>b)?a:b);
printf("It's %d",max);
}

顺便说一下,我在网上百度知道里看到有人用这种方法,看样子他的意思是先比较b 跟c的大小,然后a跟c的大小,最后在比较两组中大者。我觉得我那个更简便,为什么出不来结果?

max = ( a>b ) ? (( a > c )?a : c ) : ((b > c) ? b : c);
对了,每次出来的结果都是我输入三个数中的最后一个数,没有提示有错误

max=(c>((a>b)?a:b))?c:((a>b)?a:b);
仔细比较一下

你的方法没有问题啊,
用你的方法写了一个程序:
#include<stdio.h>
void main()
{
int a,b ,c,max;
printf("input the 3 numbers:\n");
scanf("%d%d%d",&a,&b,&c);
max =( a>b )?(( a > c )?a : c ):((b > c)? b : c);
printf("It's %d",max);
}

运行结果:
input the 3 numbers:
4
5
1
It's 5