首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手求指教,c语言写的顺序表,vc编译有异常

2013-10-25 
新手求指教,c语言写的顺序表,vc编译有错误最近刚刚学习,这些代码是书上的,有的地方我改了改,可是用VC编译

新手求指教,c语言写的顺序表,vc编译有错误
最近刚刚学习,这些代码是书上的,有的地方我改了改,可是用VC编译的时候总有错误,怎么回事啊,是不是我的代码有问题啊。

这些事错误。。。。有好多啊。。。可是我感觉没有问题啊。。





--------------------Configuration: 顺序表 - Win32 Debug--------------------
Compiling...
顺序表.c
e:\程序\数据结构\顺序表.c(5) : error C2143: syntax error : missing ']' before ';'
e:\程序\数据结构\顺序表.c(5) : error C2059: syntax error : ']'
e:\程序\数据结构\顺序表.c(7) : error C2059: syntax error : '}'
e:\程序\数据结构\顺序表.c(8) : error C2061: syntax error : identifier 'L'
e:\程序\数据结构\顺序表.c(8) : error C2059: syntax error : ';'
e:\程序\数据结构\顺序表.c(10) : error C2143: syntax error : missing ')' before '*'
e:\程序\数据结构\顺序表.c(10) : error C2143: syntax error : missing '{' before '*'
e:\程序\数据结构\顺序表.c(10) : error C2059: syntax error : ')'
e:\程序\数据结构\顺序表.c(11) : error C2054: expected '(' to follow 'L'
e:\程序\数据结构\顺序表.c(15) : error C2143: syntax error : missing ')' before '*'
e:\程序\数据结构\顺序表.c(15) : error C2143: syntax error : missing '{' before '*'
e:\程序\数据结构\顺序表.c(15) : error C2059: syntax error : ')'
e:\程序\数据结构\顺序表.c(16) : error C2054: expected '(' to follow 'L'
e:\程序\数据结构\顺序表.c(20) : error C2143: syntax error : missing ')' before '*'
e:\程序\数据结构\顺序表.c(20) : error C2143: syntax error : missing '{' before '*'
e:\程序\数据结构\顺序表.c(20) : error C2059: syntax error : 'type'
e:\程序\数据结构\顺序表.c(20) : error C2059: syntax error : ')'
e:\程序\数据结构\顺序表.c(30) : error C2143: syntax error : missing ')' before '*'
e:\程序\数据结构\顺序表.c(30) : error C2143: syntax error : missing '{' before '*'
e:\程序\数据结构\顺序表.c(30) : error C2370: 'DataType' : redefinition; different storage class
        e:\程序\数据结构\顺序表.c(3) : see declaration of 'DataType'
e:\程序\数据结构\顺序表.c(30) : error C2146: syntax error : missing ';' before identifier 'e'
e:\程序\数据结构\顺序表.c(30) : error C2059: syntax error : ')'
e:\程序\数据结构\顺序表.c(31) : error C2054: expected '(' to follow 'e'
e:\程序\数据结构\顺序表.c(42) : error C2143: syntax error : missing ')' before '*'
e:\程序\数据结构\顺序表.c(42) : error C2143: syntax error : missing '{' before '*'
e:\程序\数据结构\顺序表.c(42) : error C2370: 'DataType' : redefinition; different storage class
        e:\程序\数据结构\顺序表.c(3) : see declaration of 'DataType'
e:\程序\数据结构\顺序表.c(42) : error C2146: syntax error : missing ';' before identifier 'e'
e:\程序\数据结构\顺序表.c(42) : error C2059: syntax error : 'type'
e:\程序\数据结构\顺序表.c(42) : error C2059: syntax error : ')'
e:\程序\数据结构\顺序表.c(61) : error C2143: syntax error : missing ')' before '*'
e:\程序\数据结构\顺序表.c(61) : error C2143: syntax error : missing '{' before '*'
e:\程序\数据结构\顺序表.c(61) : error C2059: syntax error : 'type'
e:\程序\数据结构\顺序表.c(61) : error C2059: syntax error : ')'
e:\程序\数据结构\顺序表.c(74) : error C2143: syntax error : missing ')' before '*'
e:\程序\数据结构\顺序表.c(74) : error C2143: syntax error : missing '{' before '*'
e:\程序\数据结构\顺序表.c(74) : error C2059: syntax error : ')'
e:\程序\数据结构\顺序表.c(75) : error C2054: expected '(' to follow 'L'
e:\程序\数据结构\顺序表.c(88) : error C2143: syntax error : missing ')' before '*'
e:\程序\数据结构\顺序表.c(88) : error C2143: syntax error : missing '{' before '*'
e:\程序\数据结构\顺序表.c(88) : error C2059: syntax error : ')'
e:\程序\数据结构\顺序表.c(89) : error C2054: expected '(' to follow 'L'
e:\程序\数据结构\顺序表.c(101) : warning C4013: 'InitList' undefined; assuming extern returning int
e:\程序\数据结构\顺序表.c(107) : warning C4013: 'InsertList' undefined; assuming extern returning int
e:\程序\数据结构\顺序表.c(112) : warning C4013: 'PrintList' undefined; assuming extern returning int
e:\程序\数据结构\顺序表.c(115) : warning C4013: 'GetNode' undefined; assuming extern returning int
e:\程序\数据结构\顺序表.c(118) : warning C4013: 'Locate' undefined; assuming extern returning int
执行 cl.exe 时出错.

顺序表.obj - 1 error(s), 0 warning(s)





这是代码。

#include <stdio.h>
#define MaxLen 100;
typedef int DataType;
typedef struct{
DataType data[MaxLen];
int length;
}SeqList;
SeqList L;
//顺序表的初始化
void InitList(SeqList *L)
{
L->length=0;
}
//求顺序表的长度
int GetLength(SeqList *L)
{
return L->length;
}
//取表中的第i个节点
DataType GetNode(SeqList *L,int i)
{
if(i<1||i>L->length)
{
printf("位置错误!");
exit(1);
}
return L->data[i-1];
}
//查找值为e的节点
int Locate(SeqList *L,DataType e)
{
int i;
i=0;
while(i<L->length&&L->data[i]!=e)
i++;
if(i<L->length)
return i;
else
return -1;
}
//插入
void InsertList(SeqList *L,DataType e,int i)
{
int j;
if(i<1||i>L->length)
{
printf("位置错误!");
exit(1);
}
if(L->length==MaxLen)
{
printf("表空间溢出!");
exit(1);
}
for(j=L->length-1;j>=i-1;j--)
L->data[j+1]=L->data[j];
L->data[i-1]=e;
L->length++;
}
//删除
void DeleteList(SeqList *L,int i)
{
int j;
if(i<1||i>L->length)
{
printf("位置错误!");
exit(1);
}
for(j=i,j<=L->length-1;j++)
L->data[j-1]=L->data[j];
L->length--;
}
//基准划分
void Part(SeqList *L)
{
int i,j;
DataType x,y;
x=L->data[0];
for(i=1;i<L->length;i++)
{
y=L->data[i];
for(j=i-1;j>=0;j--)
L->data[j-1]=L->data[j];
L->data[0]=y;
}
}
//输出
void PrintList(SeqList *L)
{
int i;
for(i=0;i<=L->length;i++)
{
printf("%d",L->data[i];
}
}

main()
{
int a,b,e,i,j;
printf("已经建立一个顺序表!\n");
InitList(*L);
a=1;
while(a!=0)
{
    printf("请输入要插入的数字和位置!\n");
    scanf("%d%d",&e,&i);
    InsertList(*L,e,i);
    printf("是否还要插入元素?(1插入,0不插入)\n");
    scanf("%d",&a);
}
printf("你建立的顺序表为:\n");
    PrintList(*L);
printf("输入节点位置,查找该节点的值!\n");
scanf("%d",&j);
printf("值为%d",GetNode(*L,j));
printf("输入值,得出该值的位置!\n");
scanf("%d",&e);
printf("位置为%d", Locate(*L,e));
b=0;
while(b!=0)
{
    printf("请输入要删除的数字和位置!\n");
    scanf("%d%d",&e,&i);
    InsertList(*L,e,i);
    printf("是否还要删除元素?(1删除,0不删除)\n");
    scanf("%d",&b);
}
printf("删除之后的顺序表为:\n");
PrintList(*L);
}





c语言 顺序表 数据结构
[解决办法]
调试程序是比较掌握的基本技能,没几个人能一下就写出编译通过的代码!

所以楼主根据错误跳到对应位置,前后对应看看语法的错误吧!
[解决办法]
#define MaxLen 100; 宏定义后面不能加冒号呀,后面的一大片错误,由此而引起
[解决办法]
for(j=i,j<=L->length-1;j++) //j=1后面应为冒号吧
L->data[j-1]=L->data[j];

int i;
for(i=0;i<=L->length;i++)
{
printf("%d",L->data[i];  //少了个括号吧

}
[解决办法]
剩下的自己找去吧
[解决办法]
看了哈  都不是什么大问题 基本上都是粗心造成的  慢慢找 印象深刻了 下一次就好了
[解决办法]
#define MaxLen 100;

热点排行