c语言 输入3个数求最大

来源:百度知道 编辑:UC知道 时间:2024/06/07 17:38:51
#include <stdio.h>
void main()
{
int a,b,c,d;
int max(int a,int b,int c);
printf("please input num\n");
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("%d\n",d);

}
int max(int a,int b,int c)
{
return(a>b?(a>c?a:c):(b>c?b:c));
}

最后一句return(a>b?(a>c?a:c):(b>c?b:c));
为什么不能写成return((a>b?a:b):(a>c?a:c):(b>c?b:c));

格式不对,只有a>b?a:b
你这三个属于a:b:c
你说程序改选谁呢?

应该这样:return (a<b)?((b<c)?c:b):((b<c)?c:b);

你的语法错了

括号的优先级最高,最后就会变成x:x:x的样子了

return (a < b) ? ((b < c) ? c : b) : ((a < c) ? c : a);
应该可以的!!!

return((a>b?a:b):(a>c?a:c):(b>c?b:c));语法确实存在很大问题,语句必须是: 条件 ?值一 :值二
你的出现了3值,就成了: 条件 ?值一 :值二:值三
我给你个更简单的比较大小的方法:
#include "stdio.h"
int max(int x,int y)
{
if(x>y)return x;
else return y;
}
main()
{
int a,b,c,max
scanf("%d,%d,%d",&a,&b,&c);
max=max(a,b);
max=max(max,c);
printf("max=%d",max);
}
只要你调用2次MAX函数就可以了。
你想在比较多个只要在这上调用n-1次MAX函数就可以了。

兄弟 你是不是耍我们玩的啊
这么明显的问题还要来问
return((a>b?a:b):(a>c?a:c):(b>c?b:c))
如果 a=2 b=3 c=4
那么你的结果就是 b:c:c 没的结果返回了