错在哪里?求大佬指出
程序代码:
#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的代码,在第二个程序里没有
有这一句
没有这一句
我想知道为什么没有这一句会输出第四个数????
第二个程序有这个没这个都正常