关于线性表学生系统的问题 。。。为什么程序全都执行完后(是全执行了 且信息也都查到了)会显示程序错误?

chenerzhu 2014-03-10 02:20:19
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#define MAXSIZE 100
typedef struct
{
char num[15];
char name[20];
char sex[6];
int class;

}elemtype;

typedef struct
{
elemtype data[MAXSIZE];

int last;
}Sequenlist;


Sequenlist*InitList(Sequenlist*L)
{
L->last=0;
return(L);

}

int Insert(Sequenlist*L)
{
int i,n;
if(L->last==MAXSIZE-1)
printf("表满,插入失败!\n");
else
{
printf("请输入您要输入的学生个数n(n<=100):");
scanf("%d",&n);
printf("请输入%d个学生信息\n",n);
for(i=0;i<n;i++)
{
scanf("%s",&L->data[L->last].num);
getchar();
scanf("%s",&L->data[L->last].name);
getchar();
scanf("%s",&L->data[L->last].sex);
getchar();
scanf("%d",&L->data[L->last].class);
L->last++;
if(L->last==MAXSIZE-1)
{
printf("表满,本次插入失败!\n");
break;
}

}
}

return 0;
}

int Output(Sequenlist*L)
{
int i;
if(L->last==0)
printf("表空\n");
else
{
for(i=0;i<L->last;i++)
{
printf("%s %s %s %d\n",L->data[i].num,L->data[i].name,L->data[i].sex,L->data[i].class);
}
}
return 0;
}

int DelItem(Sequenlist*L)
{
int j,k;
char Num[15];
printf("输入指定学生的学号:");
scanf("%s",&Num);
if(L->last==0)
printf("表空\n");
else
{
for(j=0;j<L->last;j++)
{
if(strcmp(L->data[j].num,Num)==0)
{
k=j;
break;
}
}
if(j>=L->last)
{
printf("没有该学号学生信息\n");
return 0;
}
for(j=k;j<L->last;j++)
{
L->data[j-1]=L->data[j];
}
L->last--;
printf("删除该学生后剩下所有学生的信息\n");
for(j=0;j<L->last;j++)
printf("%s %s %s %d\n",L->data[j].num,L->data[j].name,L->data[j].sex,L->data[j].class);

}

return 0;
}

int LocItem(Sequenlist*L)
{
int j,k;
char Num[15];
printf("输入指定学生的学号:");
scanf("%s",Num);
if(L->last==0)
printf("表空\n");
else
{
for(j=0;j<L->last;j++)
{
if(strcmp(L->data[j].num,Num)==0)
{
k=j;
break;
}
}
if(j>=L->last)
{
printf("没有该学号学生信息\n");
return 0;
}
printf("该学生的信息:\n");
printf("%s %s %s %d\n",L->data[k].num,L->data[k].name,L->data[k].sex,L->data[k].class);
}
return 0;
}




int main()
{
Sequenlist*L;
L=(Sequenlist*)malloc(sizeof(Sequenlist));
InitList(L);
printf("输入学生信息(学号、姓名、性别、班级)\n");
Insert(L);
printf("输出所有学生信息\n");
Output(L);
printf("删除指定学号的学生信息\n");
DelItem(L);
printf("查找指定学号的学生信息\n");
LocItem(L);
return 0;
}
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-03-12
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
chenerzhu 2014-03-12
  • 打赏
  • 举报
回复
codeblocks int class是定义班级啊整型,肯定是可以的啊, 我运行完之后会停顿一下结果都是对的 就是最后停顿后就显示程序运行错误 不知道是怎么回事,是不是最后输出有问题啊 能帮我解决一下吗 谢谢你了
merlinfang 2014-03-11
  • 打赏
  • 举报
回复
这个你啥编译器? int class;这个也能编译过? 反正用VC6运行后是正常的,要说程序的问题那是蛮多的。

70,037

社区成员

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

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