C语言求三个数的最大值,看看我哪里写错了?

这是我自己编写的源程序,在compile的时候提示errorC2061:syntaxerror:identifier'y'errorC2660:'max':functio... 这是我自己编写的源程序,在compile的时候提示
error C2061: syntax error : identifier 'y'
error C2660: 'max' : function does not take 3 paramete
error C2061: syntax error : identifier 'y'
error C2065: 'y' : undeclared identifier
error C2065: 'z' : undeclared identifier
执行 cl.exe 时出错.

以下是源程序代码:

#include "stdafx.h"
int main ( int a,int b,int c)
{
int max(int x, y, z);
scanf("%d %d %d", &a, &b, &c);
printf("max=%d\n",max(a, b, c));
return 1;
}

int max(int x, y, z)
{

int temp;
temp=x;
if (x<y)
temp=y;
if (temp<z)
temp=z;
return temp;

}

谢谢各位大虾,小弟刚刚开始自学C语言,望知道的不吝赐教!
Thanks!
展开
 我来答
匿名用户
2009-08-29
展开全部
在声明变量时,可以这么写:
int x, y, z;
一下子声明了3个int型的变量

但是在定义函数的输入参数时,后面两个参数的类型就不能省略了,
int max(int x, y, z);
改为:
int max(int x, int y, int z);

另外,你在主函数main函数中指定参数是错误的,这里不需要参数:

#include "stdafx.h"
int main ( ) //int a,int b,int c这3个参数不需要
{
int a,b,c; //这3个变量的声明放在main函数内部
int max(int x,int y,int z);//改为int x,int y,int z
scanf("%d %d %d", &a, &b, &c);
printf("max=%d\n",max(a, b, c));
return 1;
}

int max(int x,int y,int z)//改为int x,int y,int z
{

int temp;
temp=x;
if (x<y)
temp=y;
if (temp<z)
temp=z;
return temp;

}
夜未夜读书声
2009-08-29 · TA获得超过777个赞
知道小有建树答主
回答量:661
采纳率:0%
帮助的人:521万
展开全部
#include "stdio.h"
int main ()
{
int a,b,c;
scanf("%d %d %d", &a, &b, &c);
max(a,b,c);
printf("max=%d\n",max(a, b, c));
return 0;
}

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

}

修改后! 已运行,正常!
楼主看看代码,有不清楚的补充提问!
函数里的形参定义时,和单条定义变量语句是不同的。
max(int x,int y,int z)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乡野见闻
2009-08-29 · TA获得超过285个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:142万
展开全部
#include "stdafx.h"
int main ()
{
int a = scanf("%d", &a);
int b = scanf("%d", &b);
int c = scanf("%d", &c);

int result = max(a,b,c);
printf("max=%d\n",result);

return 1;
}

int max(int x,int y,int z)
{
int temp;
temp=x;
if (x<y)
temp=y;
if (temp<z)
temp=z;
return temp;
}
在你的程序的基础上改的...我没调试,
指出你的几点不合理的地方:
1.main()函数能传参数?也许可以....总之我没见过
2.调用一个定义好的函数时不需要写返回类型,int max(int x, y, z);是不行的
3.定义一个函数时,参数要分别写明类型..int max(int x,int y,int z)才可以.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7a6aee038
2009-08-29 · TA获得超过142个赞
知道答主
回答量:224
采纳率:0%
帮助的人:106万
展开全部
错了很多地方,我给你改改。
#include <stdio.h>
int max(int x,int y,int z)
{
int temp=x;
if(x<y) temp=y;
if(temp<z) temp=z;
return temp;
}
void main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("MAX=%d\n",max(a,b,c));
}
函数的调用这块你没搞清,回去再看下书。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuijuju
2009-08-29
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
首先,参数必须先定义再使用;其次在main函数中,键盘扫描的是a,b,c,而x,y,z只是max函数的形参,是需要代入数据的;再次,参数不能在main函数的()里定义。个人观点,还望指正。下面是我改过的程序,在win-tc中是可以用的,你可以试试。
#include "stdio.h"
int a,b,c;
int main()
{ scanf("%d%d%d",&a,&b,&c);
max(a,b,c);

printf("max=%d\n",max(a, b, c));
getch();
}

int max(x,y,z)
{

int temp;
temp=x;
if (x<y)
temp=y;
if (temp<z)
temp=z;
return temp;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式