|
10鱼币
- 哪个鱼友 帮我看看 这个顺序表基本运算的程序最后输出的那个函数出了什么问题 怎么输出的数组最后一个元素 总是和倒数第二个元素一样啊(在线等……急急急急急急)
复制代码
- #include<stdio.h>
- #include<stdlib.h>
- #define MAXSIZE 100
- typedef struct
- {
- int data[MAXSIZE];
- int len;
- }list;
- int main()
- {
- int list_init(list *L);
- int list_insert(list *L,int i,int e);
- int list_delete(list *L,int k);
- int list_output(list *L);
- list *L;
- L=(list*)malloc(sizeof(list));
- int i,k,e;
- printf("请输入顺序链表中的所有元素:\n");
- list_init(L);
- printf("请输入要插入的位置:\n");
- scanf("%d",&i);
- printf("请输入要插入的数值:\n");
- scanf("%d",&e);
- list_insert(L,i,e);
- printf("请输入要删除的数值的位置:\n");
- scanf("%d",&k);
- list_delete(L,k);
- printf("请输出顺序链表中的所有元素:\n");
- list_output(L);
- return 0;
- }
- int list_init(list *L)
- {
-
- int i;
-
- for(i=0;i<=MAXSIZE-1;i++)
- {
-
- scanf("%d",&(L->data[i]));
- if((L->data[i])==0)
- return 0;
- L->len=i;
- }
- return 1;
- }
- int list_insert(list *L,int i,int e)
- {
- int j;
- if(i<1||i>=MAXSIZE)
- return 0;
- for(j=L->len;j>=i-1;j--)
- {
- L->data[j+1]=L->data[j];
- }
- L->data[i-1]=e;
- L->len++;
- return 1;
- }
- int list_delete(list *L,int k)
- {
-
- if(k<1||k>MAXSIZE)
- return 0;
- int j;
-
- for(j=k-1;j<(L->len)-1;j++)
- {
- L->data[j]=L->data[j+1];
- }
- L->len--;
- return 1;
- }
- int list_output(list *L)
- {
- int j;
- for(j=0;j<=L->len;j++)
- printf("%d ",L->data[j]);
- system("pause");
- return 1;
- }
复制代码
|
|