问题描述
- 小白刚学数据结构,有问题请教,求大神解答
-
请大神帮我看一下代码有什么问题,我一直找不出问题在哪里
#include
#include
#include#define maxsize 100;
typedef char datetype;
typedef struct
{
datetype date[maxsize];
int len;
}sq;
void creatlist(sq *L)
{
int n;
int i;
char tmp;
printf("请输入一个数字给n:");
scanf("%d", &n);
for (i = 0;i < n;i++)
{
printf("date[%d]=", i);
fflush(stdin);
scanf("%c", &tmp);
L->date[i] = tmp;
}
L->len = n - 1;
printf("n");
}
void printout(sq *L)
{
int i;
for (i = 0;i <= L->len;i++)
{
printf("date[%d]=", i);
printf("%cn", L->date[i]);
}
}
void main()
{
sq *L;
char cmd, x;
L = (sq *)malloc(sozeof(sq));
creatlist(L);
printout(L);
system("pause");}
解决方案
// #define maxsize 100 后面没有分号
// L = (sq *)malloc(sizeof(sq)); 你写错了sizeof
#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
typedef char datetype;
typedef struct
{
datetype date[maxsize];
int len;
}sq;
void creatlist(sq *L)
{
int n;
int i;
char tmp;
printf("请输入一个数字给n:");
scanf("%d", &n);
for (i = 0;i < n;i++)
{
printf("date[%d]=", i);
fflush(stdin);
scanf("%c", &tmp);
L->date[i] = tmp;
}
L->len = n - 1;
printf("n");
}
void printout(sq *L)
{
int i;
for (i = 0;i <= L->len;i++)
{
printf("date[%d]=", i);
printf("%cn", L->date[i]);
}
}
void main()
{
sq *L;
char cmd, x;
L = (sq *)malloc(sizeof(sq));
creatlist(L);
printout(L);
system("pause");
}