首页
社区
课程
招聘
[旧帖] [求助]程序无法编译 0.00雪花
发表于: 2009-9-25 16:42 1573

[旧帖] [求助]程序无法编译 0.00雪花

2009-9-25 16:42
1573
#include <stdio.h>
void main()
{
        int max(int x,int y);
        int a,b,c;
        scanf ("%d,%d\n",&a,&b);
        c=max(a,b);
        printf ("c=%d\n",c);
}
int max(int x,int y);
{
        int z;
        if (x>y) z=x;
        else z=y;
        return(z);
}
谁能帮我看下这个程序怎么不能编译啊?帮忙找出下错误啊

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
int max(int x,int y)应该在主函数外面声明,
2009-9-25 16:48
0
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
说一下用什么编译器才行啊
2009-9-25 17:43
0
雪    币: 100
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
据我所知,  我用过的编译器,  main 不能return void.

另,  LZ麻烦看一下出错信息,  一起贴上来.
2009-9-25 17:47
0
雪    币: 133
活跃值: (113)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
函数要预定义啊.要不然max ()放在main()前.
2009-9-25 19:04
0
雪    币: 54
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
1,标准C的main函数返回值不能是void,其它的可以。
2,函数在调用前需要声明。或者置前定义。其目的是调用者要认得被调用者。
2009-9-25 19:32
0
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
最重要的问题是多了个分号
2009-9-25 19:54
0
雪    币: 253
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
怎么不好好看看书 就霸王硬上弓呢
2009-9-25 20:26
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我事了一下,max是SDK提供的一个宏,我用的是VS2005 以及WDK for VS 2008,不需要重新定义max否则会提示"syntax error"你如果一定要用自己的函数,建议你更改函数名称。另外VS提供的max宏是有问题的,不安全,会有侧效反应:
#define max((x),(y)) (x)>(y)?(x):(y)
2009-9-26 00:44
0
雪    币: 377
活跃值: (10)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
10
看下c语言的语法吧  int max(int x,int y);放到main前面 申明一下 顺便说一下 main可以不用写return 语句
2009-9-26 01:45
0
雪    币: 100
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
恶心的错误,  像 leftup 说的一样,  多了个分号,  害我又用VS编译一次,  以后这种帖子谁回剪谁JJ

另回6楼:  这个要看具体用到什么编译器,  标准的范围还是太大了
2009-9-26 06:45
0
雪    币: 314
活跃值: (271)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
这个问题好好看下书就知道了,没必要在这来问吧!!
2009-9-26 08:02
0
雪    币: 897
活跃值: (30)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
这是新人交流区,肯定好多不懂的,要是都懂了还能是临时的吗?????
2009-9-26 15:59
0
雪    币: 52
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
#include <stdafx.h>

再在main前面声明 int max(int ,int );
.....

应该行吧
2009-9-27 12:11
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
这是潭浩强编写的《C程序教程设计》,第一章的例3,我按原来的说明望visual C++6.0上编译不能使用。错误处是最后一个大括号。
能不能直接用c=(a>b)?a:b;来表达啊?
2009-9-30 18:04
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
#include <stdio.h>
int max(int x,int y);
void main(void)
{
  int a,b,c;
  scanf ("%d,%d\n",&a,&b);
  c=max(a,b);
  printf ("c=%d\n",c);
}
int max(int x,int y)
{
  int z;
  if(x>y)
{
z=x;
}
  else{
z=y;
}
  return z;
}
另外g++只允许main为int类型的,最好用int main,加上返回值,VC可以编译
改过了你试试
2009-10-2 15:47
0
游客
登录 | 注册 方可回帖
返回
//