下面这个C语言程序为什么在VS2010中大量报错,却能在VC++6.0中顺利运行?

(直接插入排序函数及文件调用)(错误集中在结构体类型、未声明的标识符等)#include"c1.h"//头文件,这个不报错#defineLT(a,b)((a)<(b))s... (直接插入排序函数及文件调用)
(错误集中在结构体类型、未声明的标识符等)

#include"c1.h" //头文件,这个不报错
#define LT(a,b)((a)<(b))
struct redtype
{
int key;
int otherinfo;
};
#define maxsize 30
struct SqList
{
redtype r[maxsize+1];
int length;
};
void InsertSort(SqList &L)
{
int i, j;
for(i=2; i<=L.length; ++i)
if LT(L.r[i].key, L.r[i-1].key)
{
L.r[0]=L.r[i];
for(j=i-1; LT(L.r[0].key, L.r[j].key); --j)
L.r[j+1]=L.r[j];
L.r[j+1]=L.r[0];
}
}
void Print(SqList &L)
{
int i;
for(i=1; i<=L.length; ++i)
printf("(%d,%d)", L.r[i].key, L.r[i].otherinfo);
printf("\n");
}
void Input(FILE*f, redtype &c)
{
fscanf(f,"%d %d", &c.key, &c.otherinfo);
}
void main()
{
FILE *f;
SqList m1;
int i;
f=fopen("f9-1.txt", "r");
fscanf(f, "%d", &m1.length);
for(i=1; i<=m1.length; ++i)
Input(f, m1.r[i]);
fclose(f);
printf("排序前:\n");
Print(m1);
InsertSort(m1);
printf("直接插入排序后:\n");
Print(m1);
}
展开
 我来答
百度网友b2966ac
2013-06-01 · TA获得超过440个赞
知道答主
回答量:163
采纳率:0%
帮助的人:139万
展开全部
具体都有哪些错误啊
上传个图也好啊

还有结构体struct SqList声明中的那个redtype应该写成struct redtype
同样你的函数包括函数的参数,变量的声明中结构体的名字也错了
SqList改成struct SqList redtype改成struct redtype
还有你cl.h文件内容是什么啊

另外你这是c++吧
如果是c语言的话函数形参中不能使用&,这个在c++中是允许的是对变量的引用
但c语言中就不适用了,改成*,表示为指针变量
追问
您能修改下这个C程序,让它在vs中运行吗?(可传送至知道)
另外,c1.h的内容是一堆常用的头文件集合,那个不报错。

答案可以加分。
追答
#include <stdio.h>

#define LT(a,b)((a)<(b))

typedef struct redtype
{
    int key;
    int otherinfo;
}redtype;

#define maxsize 30
typedef struct SqList
{
    redtype r[maxsize+1];
    int length;
}SqList;

 百度说太多了无法提交,已经把修改后的代码私信给你了

因为我不用win所以没有vs,但代码已经可以在gcc下编译通过

我想在vs下编译通过应该是不成问题的

但我没运行过,这就不管我事了

冷枫_2013
2013-06-01
知道答主
回答量:57
采纳率:0%
帮助的人:22万
展开全部
加上这个头文件试试:stdio.h
追问
和那个头文件无关。加上也不能在vs中正常编译,还是报错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式