建立顺序链表的问题

来源:百度知道 编辑:UC知道 时间:2024/04/27 22:43:15
#include <stdio.h>
#include <stdlib.h> //此头文件含有动态存储分配与释放函数定义
#define ListSize 100 //一个班级能够容纳的最大学生数

typedef struct STU
{
int num; //学生的学号
char name[10]; //学生的姓名
int wuli; //物理成绩
int shuxue; //数学成绩
}stud; //单个学生信息

typedef struct LIST
{
stud stu[ListSize]; //理论学生人数的数组定义
int length; //班级实际学生人数
}list; //班级学生信息

void creatlist(int m) //建立班级学生信息,m为该班级的实际人数
{
int i;
for(i=0;i<m;i++)
{
printf("please input the %dth student's information:\n",i+1);
printf("num=");
scanf("%d",&list.stu[i].num); //输入第i个学生的学号
printf("name=");
scanf("%d",&list.stu[i].name); //输入第i个学生的姓名
printf("wuli=");
scanf("%d",&list.stu[i].wuli); //输入第i个学生的物理成绩
print

list是结构体名称,没有定义变量。
struct LIST//去掉typedef
{
stud stu[ListSize]; //理论学生人数的数组定义
int length; //班级实际学生人数
}list; //班级学生信息
或者
typedef struct LIST
{
stud stu[ListSize]; //理论学生人数的数组定义
int length; //班级实际学生人数
}List; //班级学生信息
List list//定义变量

什么错误 是不能编译还是执行错误?

creatlist这个函数 函数里面 的list 之类的东西 不能这么直接用。。

要这样
list L; 申明一个。
L.stu[i].shuxue 就可以用了,但是 在函数里面申明没用,生命周期到函数结束就没了。

creatlist这个函数根本就没有建立链表,建议你去看看数据结构的书里链表的部分