#2
书生牛犊2016-09-27 14:31
没有测试功能,只是用软件编译了一下就弹出错误了。我不知道楼主用的什么软件,但是一般都应该有编译信息啊,可以辅助你快速定位到可以错误的地方
程序代码: #include<stdio.h> #include<malloc.h> #define MAXSIZE 100 #define ERROR 0 #define TRUE 1 typedef struct { int data[MAXSIZE]; int length; }SqList; int InitList(SqList *L,int e) { L->length=e; }//组建 int Insert(SqList *L,int i,int e) { int k; if(i<1||i>L->length+1) { return ERROR; } if(L->length>=MAXSIZE) { return ERROR; } for(k=L->length-1;k>=i-1;k--) { L->data[k+1]=L->data[k]; } L->data[i-1]=e; L->length++; return 1; }//插入 int DestroyList(SqList *L,int i,int *e) { int k; if(i<1||i>L->length) { return ERROR; } *e=L->data[i-1]; for(k=i;k<L->length;k++) { L->data[k-1]=L->data[k]; } L->length--; return 1; }//删除 int Iocate(SqList L,int e)// 121 49 [Error] 'Locate' was not declared in this scope locate,Iocate傻傻分不清楚。 { //我建议楼主调整一下软件的字体,I和L都分不清楚数字0和字母O更加要疯 int i=0; while((i<=L.length)&&(L.data[i]!=e)) i++; if(i<=L.length) return i+1; else return ERROR; }//查找 void menu() { printf("请第一步建立线性表\n"); printf("1、建立线性表***********\n"); printf("2、插入**********\n"); printf("3、删除**********\n"); printf("4、查找**********\n"); printf("5、遍历输出********\n"); printf(""); printf("*6、退出**********\n"); } int main() { int num,length,number,location;//原来你定义了Location啊,只不过大小写。。。哎 int i,e; int *data; data=(int*)malloc(sizeof(int)); SqList *L; menu(); while(1) { printf("请输入你的选择:\n"); scanf("%d",&num); switch(num) { case 1: L=(SqList *)malloc(sizeof(SqList)); printf("请输入线性表的长度"); scanf("%d",&length); InitList(L,length); printf("依次输入线性表的%d个值",length); for(i=0;i<length;i++) { scanf("%d",&number); L->data[i]=number; } printf("输入完成"); break; case 2: printf("请输入你要插入的数值和位置"); scanf("%d %d",&e,&location); if(Insert(L,location,e)==TRUE) printf("插入成功"); else printf("插入失败"); break; case 3: printf("请输入你要删除的节点数"); scanf("%d",&i); if(DestroyList(L,i,data)) printf("删除成功,删除的节点数值为%d",number); else printf("删除失败"); break; case 4: printf("请输入你要查找的数值"); scanf("%d",&e); Location=Locate(*L,e);// [Error] 'Location' was not declared in this scope 变量尚未声明定义不能使用 printf("你要查找的节点数值为%d",location); break; case 5: for(i=0;i<=L->length;i++) printf("%d",L->data[i]); break; case 6: return 0; } } printf("\n"); return 0; } 只有本站会员才能查看附件,请 登录 程序员的编程字体、显示风格。非常重要。至少应保证这几个相近字符可以快速分辨。 至于你用的软件怎么修改。你想用什么样的字体和风格。自己去摸索吧。不会调整的就上网查。有问题找谷歌(不会翻墙就找百度) |
程序代码:
#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 100
#define ERROR 0
#define TRUE 1
typedef struct
{
int data[MAXSIZE];
int length;
}SqList;
int InitList(SqList *L,int e)
{
L->length=e;
}//组建
int Insert(SqList *L,int i,int e)
{
int k;
if(i<1||i>L->length+1)
{
return ERROR;
}
if(L->length>=MAXSIZE)
{
return ERROR;
}
for(k=L->length-1;k>=i-1;k--)
{
L->data[k+1]=L->data[k];
}
L->data[i-1]=e;
L->length++;
return 1;
}//插入
int DestroyList(SqList *L,int i,int *e)
{
int k;
if(i<1||i>L->length)
{
return ERROR;
}
*e=L->data[i-1];
for(k=i;k<L->length;k++)
{
L->data[k-1]=L->data[k];
}
L->length--;
return 1;
}//删除
int Iocate(SqList L,int e)
{
int i=0;
while((i<=L.length)&&(L.data[i]!=e))
i++;
if(i<=L.length)
return i+1;
else
return ERROR;
}//查找
void menu()
{
printf("请第一步建立线性表\n");
printf("1、建立线性表***********\n");
printf("2、插入**********\n");
printf("3、删除**********\n");
printf("4、查找**********\n");
printf("5、遍历输出********\n");
printf("");
printf("*6、退出**********\n");
}
int main()
{
int num,length,number,location;
int i,e;
int *data;
data=(int*)malloc(sizeof(int));
SqList *L;
menu();
while(1)
{
printf("请输入你的选择:\n");
scanf("%d",&num);
switch(num)
{
case 1:
L=(SqList *)malloc(sizeof(SqList));
printf("请输入线性表的长度");
scanf("%d",&length);
InitList(L,length);
printf("依次输入线性表的%d个值",length);
for(i=0;i<length;i++)
{
scanf("%d",&number);
L->data[i]=number;
}
printf("输入完成");
break;
case 2:
printf("请输入你要插入的数值和位置");
scanf("%d %d",&e,&location);
if(Insert(L,location,e)==TRUE)
printf("插入成功");
else
printf("插入失败");
break;
case 3:
printf("请输入你要删除的节点数");
scanf("%d",&i);
if(DestroyList(L,i,data))
printf("删除成功,删除的节点数值为%d",number);
else
printf("删除失败");
break;
case 4:
printf("请输入你要查找的数值");
scanf("%d",&e);
Location=Locate(*L,e);
printf("你要查找的节点数值为%d",location);
break;
case 5:
for(i=0;i<=L->length;i++)
printf("%d",L->data[i]);
break;
case 6:
return 0;
}
}
printf("\n");
return 0;
}
#include<malloc.h>
#define MAXSIZE 100
#define ERROR 0
#define TRUE 1
typedef struct
{
int data[MAXSIZE];
int length;
}SqList;
int InitList(SqList *L,int e)
{
L->length=e;
}//组建
int Insert(SqList *L,int i,int e)
{
int k;
if(i<1||i>L->length+1)
{
return ERROR;
}
if(L->length>=MAXSIZE)
{
return ERROR;
}
for(k=L->length-1;k>=i-1;k--)
{
L->data[k+1]=L->data[k];
}
L->data[i-1]=e;
L->length++;
return 1;
}//插入
int DestroyList(SqList *L,int i,int *e)
{
int k;
if(i<1||i>L->length)
{
return ERROR;
}
*e=L->data[i-1];
for(k=i;k<L->length;k++)
{
L->data[k-1]=L->data[k];
}
L->length--;
return 1;
}//删除
int Iocate(SqList L,int e)
{
int i=0;
while((i<=L.length)&&(L.data[i]!=e))
i++;
if(i<=L.length)
return i+1;
else
return ERROR;
}//查找
void menu()
{
printf("请第一步建立线性表\n");
printf("1、建立线性表***********\n");
printf("2、插入**********\n");
printf("3、删除**********\n");
printf("4、查找**********\n");
printf("5、遍历输出********\n");
printf("");
printf("*6、退出**********\n");
}
int main()
{
int num,length,number,location;
int i,e;
int *data;
data=(int*)malloc(sizeof(int));
SqList *L;
menu();
while(1)
{
printf("请输入你的选择:\n");
scanf("%d",&num);
switch(num)
{
case 1:
L=(SqList *)malloc(sizeof(SqList));
printf("请输入线性表的长度");
scanf("%d",&length);
InitList(L,length);
printf("依次输入线性表的%d个值",length);
for(i=0;i<length;i++)
{
scanf("%d",&number);
L->data[i]=number;
}
printf("输入完成");
break;
case 2:
printf("请输入你要插入的数值和位置");
scanf("%d %d",&e,&location);
if(Insert(L,location,e)==TRUE)
printf("插入成功");
else
printf("插入失败");
break;
case 3:
printf("请输入你要删除的节点数");
scanf("%d",&i);
if(DestroyList(L,i,data))
printf("删除成功,删除的节点数值为%d",number);
else
printf("删除失败");
break;
case 4:
printf("请输入你要查找的数值");
scanf("%d",&e);
Location=Locate(*L,e);
printf("你要查找的节点数值为%d",location);
break;
case 5:
for(i=0;i<=L->length;i++)
printf("%d",L->data[i]);
break;
case 6:
return 0;
}
}
printf("\n");
return 0;
}
不会改了 不知道什么原因!求助!求助!求助!
[此贴子已经被作者于2016-9-26 21:20编辑过]