看看这个C语言代码有什么问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 17:03:59
一个简单的C语言代码问题
看看这段代码错在哪里
不管我怎么输入
输出的都不是最大值

max(int x,int y)
{int z;
z=(x>y)?x:y;
return z;
}
void main()
{int a,b,c,d,e,f,g,h,i;
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
g=max(a,b);
h=max(c,d);
i=max(e,f);
printf("%d",g);
}
该怎么改 谢谢

1.检查输入
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
没有定义分割符,默认空格
2.
max(int x,int y)
{int z;
z=(x>y)?x:y;
return z;
}
void main()
{int a,b,c,d,e,f,g,h,i;
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
g=max(a,b);
g=max(c,g);
g=max(d,g);
g=max(e,g);
g=max(f,g);
printf("%d",g);
}

printf("%d\n",max(g,max(h,i)));
ok~~
and the return value of "max" is "int"
so you should write "int max(int x, int y)..... "

你输出的是g,就是a和b中比较大的那个。这个程序能输出6个数的最大值嘛?

你把scanf后面 printf前面 改成这样就行了

g=max(max(a, max( b,c)), max( max(d,e), f));

其实这是一个很简单的问题,主要是你太粗心了,
做c语言作业不要那么粗心,很容易犯错误的.
max(int x,int y)
{
int z;
z=(x>y)?x:y;
return z;
}
void main()
{
int a,b,c,d,e,f,g,h,i,j,k;
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);