資料結構––線性表插入問題
我想用結構體把5插入到那個1234678陣列里去,到底哪里錯啊? 大佬幫幫我啊,要掛科了

#include<stdio.h>
#define maxsize 100
typedef struct
{
int data[maxsize];
int length;
} Sqlist;
Sqlist L = { {1,2,3,4,6,7,8},8 };
int findelem(Sqlist L, int x);
void insertelem(Sqlist &L, int x);
int main(void)
{
insertelem(L, 5);
int j=0;
while (j <L.length-1) {
printf("%d", L.data[maxsize]);
j++;
}
return 0;
}
int findelem(Sqlist L, int x) //找位置
{
int i;
for (i = 0; i < L.length; ++i)
{
if (x < L.data[i])
{
return i;
}
}
return i;
}
void insertelem(Sqlist &L, int x) //插入
{
int i, p;
p = findelem(L, x);
for (i = L.length - 1; i >= p; --i)
L.data[i + 1] = L.data[i];
L.data[p] = x;
++L.length;
}


uj5u.com熱心網友回復:
修改如下while(j<L.length) {
printf(“%d”, L.data[j]); //不要列印L.data[maxsize],因為首先L.data[maxsize]會陣列越界,就算要列印最后一個元素也是L.data[maxsize-1],其次,應該是列印L.data[j],否則j回圈沒意義,L.data[maxsize]列印的都是同一個元素。
j++;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/189739.html
標籤:C語言
