Ⅰ 用C語言建立一個順序表,輸入n個數並輸出。程序編譯沒錯,但運行不了,求指教。程序如下:
樓主你好
修改如下:
#include<stdio.h>
#include<malloc.h>
#define MaxSize 40 //順序表存儲空間的初始分配量 --> (1)可以將MaxSize調大點兒
typedef struct
{
int *p;
int data[MaxSize];
int length;
int listsize;
}SeqList;
void InitList(SeqList &x) //定義順序表的初始化函數
//--> (2)這里應該是SeqList &x 需要址傳遞 值傳遞是不會改變實參值的
{
x.p=(int*)malloc(MaxSize*sizeof(int));
if(!x.p) printf("存儲分配失敗!");
x.length=0;
x.listsize=MaxSize;
}
int main()
{
SeqList L;
InitList(L);
int i,n,k;
printf("請輸入順序表的長度n:");
scanf("%d",&n);
if(n<=0)
{
printf("數據錯誤!\n");
return 0;
}
if(n>MaxSize)
{
L.p=(int*)realloc(L.p,n*sizeof(int));
if(!L.p)printf("存儲空間擴展失敗!\n");
L.listsize=n;
}
printf("請輸入數據:");
for(i=0;i<=n-1;i++)
{
scanf("%d",&k);
L.data[i]=k;
L.length++;
}
printf("線性表為:");
for(i=0;i<=n-1;i++)
printf("%d ",L.data[i]);
printf("\n");
return 1;
}
請看注釋(1)(2)
希望能幫助你哈^_^
Ⅱ 怎樣用c語言實現用順序表完成輸入一串字元,在插入,計算長度,刪除計算長度,最後輸出,拜託拜託=v=
java">#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#definemaxsize100
typedefcharelepmtype;
typedefstructsequlist
{
elepmtypedata[maxsize];
intnum;
//intlength;//和num的功能不是一樣的么
}SeqList,*LinkList;
voidListInitiate(LinkList*L)//利用二級指針,初始化順序表,你這里是想模仿我的那個二級指針方法嗎?
{
(*L)=(LinkList)malloc(sizeof(SeqList));
(*L)->num=0;//初始化為0
}
voidInputSeqList(SeqList*L)//跟人家借一個輸入函數
{
charstr[maxsize];
printf("輸入字元串:");
gets(str);
for(inti=0;str[i]!='