Code Bye

数据结构 线性表


代码一:
#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
#define MAXLEN 20
typedef struct
{
datatype data[MAXLEN];
int last;
}SeqList;
SeqList* CreatSeqList()
{
int x,i=0;
SeqList P;
P.last=0;
scanf(“%d”,&x);
while(x!=-1)
{
P.data[i]=x;
i++;
P.last++;
scanf(“%d”,&x);
}
return &P;
}
void ShowSeqList(SeqList* L)
{
int i;
for(i=0;i<L->last;i++)
printf(“%d “,L->data[i]);
}
int main()
{
SeqList *L;
L=CreatSeqList();
ShowSeqList(L);
return 1;
}
代码二:
#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
#define MAXLEN 20
typedef struct
{
datatype data[MAXLEN];
int last;
}SeqList;
SeqList* CreatSeqList()
{
int x,i=0;
SeqList *p;
p->last=0;
while(1)
{
scanf(“%d”,&x);
if(x==-1) break;
p->data[i]=x;
i++;
p->last++;
}
return p;
}
void ShowSeqList(SeqList* L)
{
int i;
for(i=0;i<L->last;i++)
printf(“%d “,L->data[i]);
}
int main()
{
SeqList *L;
L=CreatSeqList();
ShowSeqList(L);
return 1;
}
上面这两个代码错哪里了呢?
解决方案

60

#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
#define MAXLEN 20
typedef struct
{
	datatype data[MAXLEN];
	int last;
}SeqList;
SeqList* CreatSeqList()
{
	int x, i = 0;
	SeqList *P = (SeqList *)malloc(sizeof(SeqList));
	P->last = 0;
	scanf("%d", &x);
	while (x != -1)
	{
		P->data[i] = x;
		i++;
		P->last++;
		scanf("%d", &x);
	}
	return P;
}
void ShowSeqList(SeqList* L)
{
	int i;
	for (i = 0; i<L->last; i++)
		printf("%d ", L->data[i]);
}
int main()
{
	SeqList *L;
	L = CreatSeqList();
	ShowSeqList(L);
	return 1;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明数据结构 线性表