顺序表基本运算的一个小问题
哪个鱼友帮我看看 这个顺序表基本运算的程序最后输出的那个函数出了什么问题怎么输出的数组最后一个元素 总是和倒数第二个元素一样啊(在线等……急急急急急急)#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct
{
int data;
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));
if((L->data)==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=L->data;
}
L->data=e;
L->len++;
return 1;
}
intlist_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=L->data;
}
L->len--;
return 1;
}
intlist_output(list *L)
{
int j;
for(j=0;j<=L->len;j++)
printf("%d ",L->data);
system("pause");
return 1;
}
兄弟,del函数一点小失误而已,修改如下
intlist_delete(list *L,int k)
{
if(k<1||k>MAXSIZE)
return 0;
int j;
for(j=k-1;j<(L->len);j++) //循环少了一轮哈
{
L->data=L->data;
}
L->len--;
return 1;
}
小新110 发表于 2013-4-17 16:51 static/image/common/back.gif
兄弟,del函数一点小失误而已,修改如下
你这还真速度 哈 我能告诉你 我自己也找出来了吗?哈哈 但是这分给你也值谢啦有你真好啊!!每次都能很快帮到我 权志龙_爱死你la 发表于 2013-4-17 16:54 static/image/common/back.gif
你这还真速度 哈 我能告诉你 我自己也找出来了吗?哈哈 但是这分给你也值谢啦有你真好啊!!每 ...
分不分都不重要,自己能调试找出错误才是好!每天进步一点,加油
页:
[1]