错在哪里?求大佬指出
程序代码:
#include <stdio.h>
#include <stdlib.h>
#define maxsize 10
#define ERROR -1
#define OVEREFLOW -2
#define true 1
#define false 0
#define bool int
typedef int ElemType;
typedef struct sqlist
{
ElemType data[maxsize];
int length;
}sqlist,*Sqlist;
//初始化线性表
void InitList (Sqlist L)
{
int i;
L=(Sqlist)malloc(sizeof(sqlist));
L->length=0;
for(i=0;i<maxsize;i++)
{
L->data[i]=0;//初始化顺序表中的值,赋值为0
}
}
//创建一个顺序表
void CreateList (Sqlist L)
{
int i,j;
L->length=0;//1111111
printf("请问您想输入几个数字:");
scanf("%d",&i);
if(i<1||i>maxsize)
{
printf("输入有误\r\n");
}
else
{
for(j=0;j<i;j++)
{
int num;
printf("请输入一个数字");
scanf("%d",&num);
L->data[j]=num;
++L->length;
}
}
}
//遍历整个表
void DispList(Sqlist L)
{
int i;
printf("\r\n*************整个表的值***********\r\n");
for( i=0;i<L->length;i++)
printf("第%d个数的值为%d\r\n",i+1,L->data[i]);
printf("\r\n****************\r\n");
}
int main()
{
sqlist L;
int length;
printf("----初始化一个顺序表----\r\n");
InitList(&L);
printf("----建立一个顺序表----\r\n");
CreateList(&L);
DispList(&L);
return 0;
}
程序代码:
#include <stdio.h>
#include <stdlib.h>
#define maxsize 10
#define ERROR -1
#define OVEREFLOW -2
#define true 1
#define false 0
#define bool int
typedef int ElemType;
typedef struct sqlist
{
ElemType data[maxsize];
int length;
}sqlist,*Sqlist;
//初始化线性表
void InitList (Sqlist &L)
{
int i;
L=(Sqlist )malloc(sizeof(sqlist));
L->length=0;
for(i=0;i<maxsize;i++)
{
L->data[i]=0;//初始化顺序表中的值,赋值为0
}
}
//创建一个顺序表
void CreateList (Sqlist &L) //这里的&不能省
{
int i,j;
printf("请问您想输入几个数字:");
scanf("%d",&i);
if(i<1||i>maxsize)
{
printf("输入有误\r\n");
}
else
{
for(j=0;j<i;j++)
{
int num;
printf("请输入一个数字");
scanf("%d",&num);
L->data[j]=num;
L->length++;
}
}
}
//遍历整个表
void DispList(Sqlist L)
{
printf("\r\n*************整个表的值***********\r\n");
for(int i=0;i<L->length;i++)
printf("第%d个数的值为%d\r\n",i+1,L->data[i]);
printf("\r\n****************\r\n");
}
int main()
{
Sqlist L;
int length;
printf("----初始化一个顺序表----\r\n");
InitList(L);
printf("----建立一个顺序表----\r\n");
CreateList(L);
DispList(L);
return 0;
}
这两个程序的区别只有形参的类型和传入的实参不同 还有一句我在第一个程序注释为11111的代码,在第二个程序里没有
有这一句
没有这一句
我想知道为什么没有这一句会输出第四个数????
第二个程序有这个没这个都正常









