为什么编译错误?

gbvet65 2011-10-26 03:24:09
#include <stdio.h>
#include <stdlib.h>
#define MAX 50000
int top=-1;
int card[2*MAX];

int get_score(int c){
int s=0,i;
for(i = top;i >= 0;i--){
if(c==card[i]){
s=top+1-i+1;
top=i-1;
return s;
}
}
card[++top]=c;
return s;
}

int main(){
int n,i,mg[MAX],bs[MAX],mg_score=0,bs_score=0;
scanf("%d",&n);
for(i = 0;i < n;i++)
scanf("%d",&mg[i]);
for(i = 0;i < n;i++)
scanf("%d",&bs[i]);

for(i = 0;i<n;i++){
mg_score+=get_score(mg[i]);
bs_score+=get_score(bs[i]);

}
printf("MG:%d BS:%d",mg_score,bs_score);
return 0;


}
...全文
111 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ515311445 2011-10-27
  • 打赏
  • 举报
回复
是你这里没有stdafx.h,你去掉那行就行了
gbvet65 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dreamtale123 的回复:]

// Lianxi.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;


#define MAX 50000
int top=-1;
int card[2*MAX];

……
[/Quote]


悲剧的说,不能用#include "stdafx.h"。。。。
cena520 2011-10-26
  • 打赏
  • 举报
回复
我的编译可以正常通过啊。
梦境传说 2011-10-26
  • 打赏
  • 举报
回复
// Lianxi.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;


#define MAX 50000
int top=-1;
int card[2*MAX];

int get_score(int c)
{
int s=0,i;
for(i = top;i >= 0;i--)
{
if(c==card[i])
{
s=top+1-i+1;
top=i-1;
return s;
}
}
card[++top]=c;
return s;
}

int _tmain(int argc, _TCHAR* argv[])
{

int n,i,mg[MAX],bs[MAX],mg_score=0,bs_score=0;
scanf("%d",&n);

for(i = 0;i < n;i++)
scanf("%d",&mg[i]);
for(i = 0;i < n;i++)
scanf("%d",&bs[i]);

for(i = 0;i<n;i++)
{
mg_score+=get_score(mg[i]);
bs_score+=get_score(bs[i]);
}
printf("MG:%d BS:%d",mg_score,bs_score);

system("pause");
return 0;
}

现在编译运行都没错。 你在把我这代码拷贝运行看看!
5t4rk 2011-10-26
  • 打赏
  • 举报
回复
看代码 感觉没什么错误啊

楼主你给点详细的错误提示吧
streamlv 2011-10-26
  • 打赏
  • 举报
回复
编译器问题,特别是对c++标准支持差的Vc6。。。
gbvet65 2011-10-26
  • 打赏
  • 举报
回复
太无奈了。。。。。。。
WTK-CV 2011-10-26
  • 打赏
  • 举报
回复
VS2010 编译通过,没有问题
ouyh12345 2011-10-26
  • 打赏
  • 举报
回复
int s=0,i;

老式的c编译器会出问题,声明得在定义的前面,改成
int i;
int s=0;
ouyh12345 2011-10-26
  • 打赏
  • 举报
回复
都是局部变量,不会冲突吧
gbvet65 2011-10-26
  • 打赏
  • 举报
回复
Compile error。。刚试试了下,把下面的int i 换成int j就能通过了,是不是多次声明了?

int get_score(int c){
int s=0,i;
for(i = top;i >= 0;i--){
if(c==card[i]){
s=top+1-i+1;
top=i-1;
return s;
}
}
card[++top]=c;
return s;
}
bdmh 2011-10-26
  • 打赏
  • 举报
回复
vs2008编译通过
gbvet65 2011-10-26
  • 打赏
  • 举报
回复
在VC++里完全没有问题,可是交作业到DS(数据结构)就出现编译错误了。可是我自己找不出哪里错了啊,
ouyh12345 2011-10-26
  • 打赏
  • 举报
回复
错误呢?帖出来

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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