weixin_58555594 2021-07-02 00:57 采纳率: 100%
浏览 14
已采纳

这个程序显示错误应该怎么改啊?

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 40//线性表存储空间的初始分配量
#define increase 10 //线性表存储空间的分配量增量
intf,t=0; //定 义全局变量
typedef struct
{
char name[20];
int num;//学号和房号都为整型
int room;
}stu;
stu stud;
typedef struct
{
int length; //当前长度
stu elem;//存储空间基址
int listsize; //当 前分配的存储容量
}linklist;
void init(linklist &1)//线性表初始化
{
1.length=0;
1.elem=( stu )malloc(Nsizeof(stu ));
1.listsize=N;
}
void menu()/操作菜单
{
printf("\n"); .
printf(" 请按键选择操作\n");
printf( "\n' );printf("\n");
printf("1按姓名排序 2按学号排序\n");
printf("\n");
printf("3按房号排序 4按姓名查找\n");
printf("\n");
printf("5按学号查找 6按房号查找\n");
printf("\n");
printf("7按学号插入 8按学号删除\n");
printf("n"); printf("\n"); printf("\n"); printf("\n");
printf("提示:当输入的数字键为0时,退出操作\n");
if(t==1)
{
printf("请输入数字键(18为操作键):)://18为有效数字操作键
scanf("%d",&f);
if(f<0||f>9)
{
system("cls");
printf( "\n");
printf( "输入数字不对,请在原处重输!\n"); printf("n");
menu();
}
}
}
void disp() //返回主界面
{
char c;
fflush(stdin);
printf("\n");
printf("请按任意键进入主界面:");
scanf("%c" ,&c);
system("cls");
}
void panduan3() //如果已无学生 记录则返回主界面
{
printf("\n");
printf("已无学生记录\n");
printf("\n");
disp();
menu();
void shuru(inklist1) //輸 入学生的信息
{
printf("请输入姓名:");
fflush(stdin);//清空输入缓冲区,得到正确的输入数据
gets(stud.name);//输入一行字符串(姓名)
printf("请输入学号:");
scanf("%d",&stud.num);
printf("请输入房号:");
scanf("%d",& stud.room);
}
void create(linklist &1)//创建学生信息表
{
if(1.length>=1.listsize) //判断学 生的人数是否超过初值,如果超过,则重新分配
{
stu newbase;
newbase=(stu
)realloc(1.elem,(N+ increase)sizeof(stu ));
1.elem=newbase;
1.listsize+=increase;
}
int i=2;
char ch;
printf("\n"); .
printf(" **** *** *** *** *** 开始创建线性表
**************
\n");printf("\n");
printf("请输入第1个学生的信息\n");
shuru(l);//调用输入函数
ch=getchar();
strcpy(1.elem[1.length].name,stud.name);
1.elem[.length].num=stud.num;
1.elem[l.length].room=stud.room;
1.length++; .
printf("n");
printf("是否继续输入?<y/n>:");
scanf("%c",&ch);
printf( "\n" );printf("\n");
while(ch=='y)
{
printf("请输入第%d个学生的信息n",i);
shuru(1);
strcpy(1.elem[1.length].name,st

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-07-02 04:34
    关注

    stu elem;//存储空间基址 这个得用指针类型,stu *elem;

    然后你后面的代码都需要相应修改

    比如1.elem=( stu )malloc(Nsizeof(stu ));

    要改为

    1.elem=( stu* )malloc(Nsizeof(stu ));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?