求助 C语言顺序表问题

Sun_YZ666 2023-09-15 22:36:45

题目是 输入的数字逆序输出

#include<stdio.h>
#define MAXLEN 100
typedef int DataType;
typedef struct
{   DataType data[MAXLEN];
    int Length;
}SeqList;
SeqList L;
void InitList( SeqList  *L)
{
  L->Length=0;
}
void CreateList(SeqList *L,int n)
{
 int i;
 printf("输入%d个整数: ",n);
 for (i=0;i<n;i++)
  scanf("%d",&L->data[i]);
 L->Length=i;
}
int GetElem(SeqList *L,int i,DataType *x)
{
 if(i<1||i>L->Length)
  return 0;
 else
 { *x = L->data[i-1];
 return 1;
 }
}

void DispList(SeqList *L)
{
  int i;
  for(i=L->Length;i>=0;i--)
   {
       printf("%5d",L->data[i]);
   }
}
main()
{
 SeqList L;
 InitList(&L);
 CreateList(&L,5);
  DispList(&L);
}

 这是devc里面运行的样子,前面多了个0,在vc6.0里面运行时,0变成 -858993460,我去查了这个数字,查到的说是数组越界相关的问题 ,但是没找到解决方法,求助大佬,帮忙看看

...全文
125 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
akun爱玩 2023-09-16
  • 打赏
  • 举报
回复
先输出date[5],而上面scanf只输入到date[4],date5,在初始化时未赋值,其值为0
forever74 2023-09-16
  • 打赏
  • 举报
回复

第一个输出是多余的,也就是说你的输出函数第一次循环是多余的,跳过即可。
for(i=L->Length-1;...

69,575

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧