#include<stdio.h>
#include<stdlib.h>
#define LISTSIZE
#define OK 1
#define ERROR 0
typedef struct{
int *elem;
int length;
int LiseSize;
}SqList;
void fuzhi(SqList *L)
{
int length;
printf("请给顺序表赋值:\n");
printf("你想要输入几个数据:\n");
scanf("%d",&length);
printf("请输入元素:\n");
for(int i=0;i<length;i++)
scanf("%d",&L->elem[i]);
L->length=length;
}
void InsertList(SqList *L,int i,int elem)
{
int k;
if((i<1)||(i>L->length+2))
{
printf("插入位置i值不合法");
return(ERROR);
}
if(L->length>=MAX-1)
{
printf("表已满,无法插入");
return(ERROR);
}
for(k=L->length;k>=i-1;k--)
L->elem[i-1]=e;
L->length++;
return(OK);
}
void DeleteList(SqList *L,int i)
{
for(int k=i;k<=L->length;k++)
L->elem[k-1]=L->elem[k];
L->length--;
}
void AlterElement(SqList *L,int elem,int i)
{
L->elem[i-1]=elem;
}
int SearchElement(SqList L,int elem)
{
int location;
for(int i=0;ilength;i++)
if(L->elem[i]==elem)
{
location=i+1;
return location;
}
return -1;
}
void PrintList(SqList L)
{
printf("操作完后的顺序表为:\n");
for(int i=0;ilength;i++)
printf("%d",L->elem[i]);
}
int main()
{
SqList L;
L.elem = (int)malloc(LISTSIZEsizeof(int));
L.LiseSize = LISTSIZE;
fuzhi(&L);
printf(&L);
printf("输入你要插入的数字位置和要插入的数据值:\n");
int insert_a,insert_b;
scanf("%d%d",&insert_a,&insert_b);
InsertList(&L,insert_a-1,insert_b);
printList(&L);
int delete;
printf("输入你要删除的数据位置:\n");
scanf("%d%",&delete);
Delete(&L,delete-1);
printf(&L);
int Alter_a,Alter_b;
scanf("%d%d",&Alter_a,&Alter_b);
AlterElement(&L,Alter_a,Alter_b);
printf(&L);
int saerch;
printf("输入你要查找的数据位置:\n");
scanf("%d",&search);
int index=SearchElement(&L,search);
if(index + 1)
printf("您要查找的数据位置为%d个\n",index);
else
printf("抱歉,您要查找的数据不存在\n");
}
顺序表的增删改查 出现好多报错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- qzjhjxj 2022-09-23 19:34关注
把代码贴出来才可以帮上忙。
都已修改调试完善,修改处见注释位置,供参考:#include<stdio.h> #include<stdlib.h> #define LISTSIZE 50//修改 #define OK 1 #define ERROR 0 typedef struct{ int *elem; int length; int LiseSize; }SqList; void fuzhi(SqList *L) { int length; printf("请给顺序表赋值:\n"); printf("你想要输入几个数据:"); scanf("%d",&length); if (length > L->LiseSize){ //修改 printf("待输入元素个数大于表长度,无法赋值!\n"); return; } printf("请输入元素:\n"); for(int i=0;i<length;i++) scanf("%d",&L->elem[i]); L->length=length; } void InsertList(SqList *L,int i,int elem) { int k; if((i < 1)||(i > L->length))//if((i<1)||(i>L->length+2)) { printf("插入位置i值不合法\n"); return;//(ERROR); } if(L->length >= L->LiseSize)//if(L->length>=MAX-1) { printf("表已满,无法插入\n"); return;//(ERROR); } for(k=L->length;k > i - 1; k--) L->elem[k] = L->elem[k-1];//修改 L->elem[i-1]=elem; //L->elem[i-1]=e; L->length++; return;//(OK); } void DeleteList(SqList *L,int i) { if((i < 1)||(i > L->length))//修改 { printf("删除位置i值不合法\n"); return; } if(L->length <= 0) //修改 { printf("表已空,无法删除\n"); return; } for(int k = i - 1;k < L->length - 1; k++)//修改 L->elem[k]=L->elem[k+1]; //修改 L->length--; } void AlterElement(SqList *L,int elem,int i) { if((i < 1)||(i > L->length))//修改 { printf("修改位置i值不合法\n"); return; } L->elem[i-1]=elem; } int SearchElement(SqList* L,int elem) { //int location;修改 for(int i=0;i < L->length;i++) if(L->elem[i] == elem) //location=i+1;修改 return i+1; //location; 修改 return -1; } void PrintList(SqList* L) { printf("操作完后的顺序表为:\n"); for(int i=0;i < L->length;i++) printf("%d ",L->elem[i]); printf("\n"); } int main() { SqList L; L.elem = (int*)malloc(LISTSIZE*sizeof(int)); L.LiseSize = LISTSIZE; L.length = 0; //修改 fuzhi(&L); PrintList(&L); //printf(&L); printf("输入你要插入的数字位置和要插入的数据值:"); int insert_a,insert_b; scanf("%d%d",&insert_a,&insert_b); InsertList(&L,insert_a,insert_b); //InsertList(&L,insert_a-1,insert_b); PrintList(&L); //printList(&L); int Del; //delete; printf("输入你要删除的数据位置:"); scanf("%d",&Del); //scanf("%d%",&delete); DeleteList(&L,Del); // Delete(&L,delete-1); PrintList(&L); // printf(&L); int Alter_a,Alter_b; printf("输入你要修改的目标值和数据位置:");//修改 scanf("%d%d",&Alter_a,&Alter_b); AlterElement(&L,Alter_a,Alter_b); PrintList(&L); //printf(&L);修改 int search; //saerch; printf("输入你要查找的数据值:"); scanf("%d",&search); int index = SearchElement(&L,search); if(index > 0) //if(index + 1) printf("您要查找的数据位置为%d个\n",index); else printf("抱歉,您要查找的数据不存在\n"); return 0; }
解决 1无用
悬赏问题
- ¥15 openpcdet自制数据集评估bev精度和3d精度相同
- ¥15 excel 上下按钮 显示行
- ¥20 云卓h12pro 数传问题
- ¥20 请问有人知道怎么用工艺库里面的sdb文件通过virtuoso导出来library里面每个cell的symbol吗?
- ¥20 海思 nnie 编译 报错
- ¥50 决策面并仿真,要求有仿真结果图
- ¥15 关于路由器的路由协议配置
- ¥15 springboot接入微信支付SDK
- ¥50 大区域的遥感影像匹配 怎么做啊
- ¥15 求解答:pytorch跑yolov8神经网络受挫