Ⅰ 用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]!='