关于顺序表
#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100typedef struct{ int data[MAXSIZE]; int last;}list;list* creatlist()//创建顺序表 { list *s; s=(list*)malloc(sizeof(list)); s->last = 0; return s;}int addlist(list *s,int z)//追加表结点 { if(s->last<MAXSIZE) { s->data[s->last]=z; s->last++; return 1; } else return 0; }int insert(list *s,int pos,int y)//插入节点 { int i; if(pos>0 && pos <= s->last) { for(i=s->last;i>=pos-1;i--) { s->data[i+1]=s->data[i]; } s->data[pos-1]=y; s->last++; return 1; } else { printf("\n插入位置错误!\n"); return 0; } }int deletelist(list *s,int pos)//删除节点 { int i; if(pos>0 && pos <= s->last) { for(i=pos;i<=s->last;i++) { s->data[i-1]=s->data[i]; } s->last--; return 1; } else { printf("\n删除位置错误!!\n\n"); return 0; }}void output(list *s)//列出节点 { int i; if(s->last==0) { printf("表空!!"); } else { printf("当前表的数据是: "); for(i=0;i<s->last;i++) { printf("%d ",s->data[i]); } printf("\n"); }}main(){ list *sis; char ch; int b,y,weizhi,i; sis=creatlist(); if(sis!=NULL) { printf("创建顺序表成功!\n"); } printf("\n请选择操作\n\n1:追加表数据\t2:插入\t3:列出表\t4:删除\n"); scanf("%d",&ch); for(i=0;;i++) { switch(ch) { case 1: system("CLS"); printf("请输入要追加顺序表的值: \n"); scanf("%d",&y); if(addlist(sis,b)==1) { printf("追加顺序表值成功!\n"); } else printf("追加顺序表值失败!\n"); break; case 2: printf("请输入要插入的值: ") ; scanf("%d",&b); printf("请输入要插入的位置: ") ; scanf("%d",&weizhi); system("CLS"); if(insert(sis,weizhi,b)==1) { printf("插入成功!\n"); } else printf("插入失败!!\n"); break; case 3: system("CLS"); output(sis); break; case 4: printf("请输入要删除的位置: "); scanf("%d",&weizhi); system("CLS"); if(deletelist(sis,weizhi)==1) { printf("删除成功!!\n"); } else printf("删除失败!!\n"); break; default: printf("没有这个选项\n");break; } printf("\n请继续选择操作\n\n1:追加表数据\t2:插入\t3:列出表\t4:删除\n"); scanf("%d",&ch); getchar(); } system("pasue"); return 0;}char ch;改为:int ch;
[解决办法]