顺序表检错 急急急

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:25:05
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "stdlib.h"
typedef struct
{
int a[20];
int m;
}squlist,*squ;
void newl(squ L)
{
int b,i=L->m;
printf("请输入要插入的元素");
scanf("%d",&b);
L->a[i]=b;
(L->m)++;
}

void insert(squ L)
{
int i,l;
printf("请输入要插入元素");
scanf("%d",&i);
printf("请输入插入元素的位置");
scanf("%d",&l);
if(i<L->m&&i>=0&&i<20)
{
{

for(i=1;i<l-i;i++)
{
L->a[L->m]=L->a[L->m-1];
L->a[i-1]=i;
}
L->m++;
}
}
else
printf("输入错误");
}

void scan(squ L)
{
int i;
for(i=0;i<=L->m;i++)
{
printf("%d",L->a[i]);
}
}

void search(squ L)
{
int l;

主函数中switch这么写
scanf("%d",&n);
switch(n)
你那样写的话switch 的是scanf的返回值。因为每次scanf执行都成功,所以scanf的返回值每次都是1,所以不管按什么键都是去“新建”那一项。

还有
scan()函数for(i=0;i<=L->m;i++)
应该for(i=0;i< L->m;i++)
因为L->m指的是元素个数,而数组的下标范应该是0到元素个数减1

insert也有问题。

swich那是最大的问题,你先调试着,有问题的话m我。
我一一给你解答