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);
}
}
}
{
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);
}
}
}
{
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);