C语言输出三个数的最大值 哪里错了?

来源:百度知道 编辑:UC知道 时间:2024/05/09 06:50:19
#include <stdio.h>
void main()
{
int max(int x, int y,int z);
int a, b, c, d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
}
int max(int x,int y,int z);
{
int k;
if (x>y,x>z)k=x;
if (y>x,y>z)k=y;
else k=z;return(k);
}谢谢

if (x>y,x>z)k=x;
if (y>x,y>z)k=y;
应该为
if (x>y && x>z)k=x;
if (y>x && y>z)k=y;

你知道逗号表达式的值吗,举个例子
a=3,b=4;这个逗号表达式的值是4,而你if(x>y,x>z)仅相当于只判断了一个x>z,假如x=4,y=3,z=5,x>y,x>z的结果就是1,别的错误相信你都能找出来,这是逻辑错误,只能自己找

#include <stdio.h>
void main()
{
int max(int x, int y,int z);
int a, b, c, d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
}
int max(int x,int y,int z)
{
if(x>y)
{ if(x>z)
return x;
else return z;
}
else if(y>z)
return y;
else
return z;

}
我把你的程序改成以上形式了,这种方法更好理解些!

格式不正确
if(x>y,x>z)应该为if(x>y&&x>z)'与'要用&&,&是and的意思

#include <stdio.h>
void main()
{
int max(int x, int y,int z);
int a, b, c, d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
print