typedef struct
{
DataType data[ListSize];
DataType length;
}SeqList   上面内容换到别处就会在下一行报这个错误;
void main(){ error C2144: syntax error : missing ';' before type 'void'
fatal error C1004: unexpected end of file found在SeqList后面加上分号错误更多  是不是  在SWITCH后面调用函数也有问题,。。  刚学数据结构好南。。如下是完整的代码
#define  ListSize 20
#include<stdio.h>
#include<stdlib.h>
typedef int DataType;
void InitList();
void lastinto();
void findone();
int sureinto();
void watchall();
void ClearList();
void alter();int delsure();//10typedef struct
{
DataType data[ListSize];
DataType length;
}SeqList
void main(){ 
int i,s=1,e,z;
while(s){
printf("请输入想要实现的操作:\n");
printf("-----------------------------------\n");
printf("|1:新建一个表\n                    |");
printf("|2:尾插法插入数据 \n               |");
printf("|3:指定地点插入数据 \n             |");
printf("|4:删除指定地点位置\n              |");//20
printf("|5:修改指定地点位置\n              |");
printf("|6:查找数据\n                      |");
printf("|7:查看顺序表\n                    |");
printf("|8:清空顺序表\n                    |");
printf("|9:退出\n                          |");
printf("-----------------------------------\n");
scanf("%d",&i);
if(i<0||i>8){
printf("error");
}//30
switch(i){
case 1:InitList(L);break;
case 2:scanf("%d",&e); lastinto(L,e); break;
case 3:scanf("%d",&e); scanf("%d",&z);sureinto(L,e,z); break;
case 4:scanf("%d",&e); scanf("%d",&z); delsure(L,e,z);break;
case 5: scanf("%d",&e); scanf("%d",&z);alter(L,e,z);break;
case 6: scanf("%d",&e); findone(L,e);break;
case 7: watchall(L);break;
case 8: ClearList(L);break;
case 9: s=0; break;//40
}
}
}
void InitList(SeqList L){    if (L->length==0){
        return;
    }
    L->length = 0;
}void lastinto(SeqList L, DataType e){
    if (L->length==ListSize)//60
    {
        printf("顺序表已满,不能插入!\n");
    }
    L->data[L->length]=e;
    L->length++;
}
int sureinto(SeqList L,DataType e,int z){
    
    if (z<1||z>L->length)
    {//70
        printf("插入位置不合法!\n");
        return 0;
    }
if (L->length == ListSize)
    {
        printf("顺序表已满,不能插入!\n");
    }
int x=L->length,k;
  for (k=z;k<= L->length; k++)
        {//80
            L->data[x] = L->data[x-1];
            x--;
        }
        L->data[z-1] = e;
        L->length++; 
        return 1;
}
int delsure(SeqList L,DataType* e,int z){
int k,x;
    if(z>L->length||L->length<1){//90
        printf("error");
        return 0;
        }
        *e=L->data[z-1];
        for (k=z;k<= L->length; k++)
        {
            L->data[x-1] = L->data[x];
            x++;
        }
        L->length--;//100
    return *e;
        }
void alter(SeqList L,DataType e,int z){
 if(z<1||z>L->length+1){
        printf("error");
           }
 else{
    L->data[z-1]=e;
}
}//110
void ClearList(SeqList L)
{
    L->length=0;
}
void watchall(SeqList L){int k;
    for (k = 0; k < L->length; k++)
    {
        printf("%d", L->data[k]);
    }
    printf("\n");//120
}
void findone(SeqList L,DataType e){
    int k; int l=0;
    for(k=0;k<L->length;k++){
        l++;
        if(L->data[k]==e){
        printf("下标为%d",l);
        }
    }
}

解决方案 »

  1.   

    }SeqList ;
      

  2.   

    void InitList(SeqList *L){
      

  3.   

    typedef struct
    {
    DataType data[ListSize];
    DataType length;
    }SeqList
    改成
    struct SeqList
    {
    DataType data[ListSize];
    DataType length;
    };
    同时把它移到 typedef int DataType; 的后面且修改函数声明:
    typedef int DataType;
    struct SeqList
    {
    DataType data[ListSize];
    DataType length;
    };
    void InitList(SeqList L);
    void lastinto(SeqList L, DataType e);
    int sureinto(SeqList L,DataType e,int z);
    int delsure(SeqList L,DataType* e,int z);
    void alter(SeqList L,DataType e,int z);
    void ClearList(SeqList L);
    void watchall(SeqList L);
    void findone(SeqList L,DataType e);