一个C语言程序的问题

startrek36 2011-07-16 10:51:04
我是个C语言编程初学者,用的是谭的教材,在此教材第例1.3中有一个程序,内容如下:
#include<stdio.h>
int main()
{
int max(int x,int y);
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max= %d\n",c);
return 0;
}
int max(int x,int y);
{
int z;
if(x>y)z=x;
else z=y;
return(z);
}
在运行程序时,总出现错误提示如下:
error C2447: missing function header (old-style formal list?)
请问问题出在哪里?谢谢大家!
...全文
272 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
i945800687 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 startrek36 的回复:]
我是个C语言编程初学者,用的是谭的教材,在此教材第例1.3中有一个程序,内容如下:
#include<stdio.h>
int main()
{
int max(int x,int y);
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max= %d\n",c);
return 0;
}
int ……
[/Quote]

把函数声明放到main()之前
还有定义时后面不要加;
菜鸟来了2022 2011-08-30
  • 打赏
  • 举报
回复
19楼正解
Memory秀 2011-08-30
  • 打赏
  • 举报
回复
主函数调用max时 ,max必须已经声明。在main函数前 加max函数声明。int max(int x,int y);
yjm199 2011-08-30
  • 打赏
  • 举报
回复
5楼正解。。
limang89 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 schoolers 的回复:]

旧式的风格

应该把main函数里max的声明放在main函数体外。
即:
C/C++ code
int max(int x,int y); // here


int main()
{

int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max= %d\n",c);
ret……
[/Quote]

++
m_happy 2011-08-29
  • 打赏
  • 举报
回复
把main函数里max的声明放在main函数体上面声明。或把max函数写在main函数的前面
dongjiruiyu 2011-08-28
  • 打赏
  • 举报
回复
函数的使用和变量是相似的,都是先声明再定义。
qingtianweichong 2011-08-28
  • 打赏
  • 举报
回复
把书看几遍应该自己能弄出来啊!多学习
sky0500710121 2011-08-24
  • 打赏
  • 举报
回复
还是用通用的,把函数定义放在main函数前面
这样不用再main函数中声明了
然后再要求语句简洁 学习7楼的
wangkui200886 2011-08-23
  • 打赏
  • 举报
回复
其实很简单!把分号去掉就行了
dengalcymy 2011-08-21
  • 打赏
  • 举报
回复
你定义函数的时候后面多了个分号int max(int x,int y);把分号去掉就好
凸毕拿波丸 2011-08-20
  • 打赏
  • 举报
回复
19#正解。。。。
NMB 2011-08-20
  • 打赏
  • 举报
回复
学习了~
玫瑰色酒杯 2011-08-20
  • 打赏
  • 举报
回复
第一个
int max(int x, int y);
是函数声明 参数x y可以省略 即int max(int, int);

第二个是函数定义
int max(int x, int y) //分号去掉
{

}
因为加了分号 编译器认为一条语句结束 导致函数未定义 明白了吧?
wizard_tiger 2011-08-19
  • 打赏
  • 举报
回复
scanf("%d,%d",&a,&b);
把这个函数中两个%d中间的,去掉。scanf中不要加除格式符以外的东西,否则就要在输入的时候按这个格式输入。
cNETLOOK 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xxwy89 的回复:]

直接return x>y?x:y也行吧
[/Quote]+1
janetanet 2011-08-18
  • 打赏
  • 举报
回复
首先函数没有声明,其次在写max函数的时候分号去掉
波风七夜 2011-07-26
  • 打赏
  • 举报
回复
把分号去掉啊
daijope 2011-07-26
  • 打赏
  • 举报
回复
应该把main函数里max的声明放在main函数体外。
或者把函数放在main函数之前。
lee275 2011-07-26
  • 打赏
  • 举报
回复
max定义在main之后,在main里面调用的时候要在main前面先声明max 不然在main里调用max 就会出现函数未定义
加载更多回复(15)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧