C语言菜鸟遇到的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 15:59:24
我要做3个数输出最大 为什么下面这些总是计算错误?

#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);
getch();
}

int max (int x,int y,int z)
{
int e;
if (x<y) e=y;
else e=x;
if (e<z) e=z;
else return(e);
}

if (e<z) e=z;
else return(e);
你把return(e);写到else里,好像只有e<z不成立时函数才返回值,明显不对吧
if (e<z)
{
e=z;
return(e);
}
else return(e);

if (e<z) e=z;
else return(e);
这里 把else去掉

你已经将最大值赋值给z了 还else干嘛呢 直接返回e啊

楼上的答案是正确的,修改的话,只要去掉else,就可以了。