帮忙解决下C语言问题

来源:百度知道 编辑:UC知道 时间:2024/04/30 08:22:02
有道题目是这样的`` 希望有哪位高手帮个忙
编写一个C程序,输入a,b,c 三个值,输出其中最大值。
我写的过程是这样的
main()
{int a, b, c, d;
scanf("%e,%e,%e",&a,&b,&c);
d=max(a,b,c);
printf("max=%e",d);
}
int max(int x,int y)
{int z;
if(x>y) z=x;
else z=y;
int max(int z,int w)
{int u;
if(z>w) u=z;
else u=w;
return u;
}
我们老师提醒说要用两次调用max函数,我就写成这样的,我在调试运行的时候出来这样的提示:
Expression syntax in function max;
Compound statement missing } in function max;
'z' is assigned a value which is never used in function max;
帮忙说的详细点,还有可以把正确的过程写出来吗?
谢谢啊```

楼上这些人怎么答题的?没一个人答到点子上.....

我先说说你老师的意思吧。“我们老师提醒说要用两次调用max函数”意思很简单:每调用一次max()函数就可以求出两个数中的较大值,那么比如调用d=max(a,b)就得到a,b中的较大值,并赋给d,那么再调用一次d=max(d,c)不就求出d,c中的较大值吗?而d又是a,b中的较大值,所以调用两次后d就是a,b,c三者的最大值
事实上还可以写得更简单:d=max(max(a,b),c);楼主应该明白吧?

在说说你的程序,你的程序有三处错误:
1、
int max(int x,int y)
{int z;
if(x>y) z=x;
else z=y;
int max(int z,int w)
{int u;
if(z>w) u=z;
else u=w;
return u;
}

企图对函数max()嵌套定义,并且还企图定义两个参数,类型,函数名完全相同的函数,真是大错特错!
只需保留一个即可
int max(int x,int y)
{int z;
if(x>y) z=x;
else z=y;
return z;
}

2、d=max(a,b,c);你定义的max(int x,int y)函数只有两个形参,而你调用的时候却是a,b,c三个实参。你们老师没教你说形参和实参要个数、顺序、类型一一对应吗?

3、scanf("%e,%e,%e",&a,&b,&c);和printf("max=%e",d);
%e是用科学计数法来输入输出的,而你这里a,b,c,d都是整型,用%d即可。

下面是完整代码,保证满意!
#include <stdio.h>
main()
{int max(int x,int y);
int a, b, c, d;
scanf(&