顺序表的输入输出错误
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include<stdio.h>
using namespace std;
struct Student{
char id;
char name[10];
int gread;
};
struct List{
int length;
Student *elem;
};
int InitList(List&L,int m){
L.elem=(Student*)malloc(sizeof(Student)*m);
if(!(L.elem))
return 0;
L.length=0;
return 1;
}
void input(List&L,int n){
while(n--){
printf("输入学号:");
scanf("%s",&(L.elem+L.length)->id);
printf("输入姓名:");
char name[20];
scanf("%s",&name);
strcpy((L.elem+L.length)->name,name);
printf("输入成绩:");
scanf("%d",&(L.elem+L.length)->gread);
L.length++;
}
}
void output(List&L,int n){
if(L.length==0){
printf("表为空!");
exit(1);
}
for(int i=0;i<n;i++){
printf("学生学号:%s\n",(L.elem+i)->id);
printf("学生姓名:%s\n",(L.elem+i)->name);
printf("学生成绩:%d\n",(L.elem+i)->gread);
printf("\n");
}
}
int main(){
List L1;
int m;
printf("输入学生数:");
scanf("%d",&m);
InitList(L1,m);
input(L1,m);
output(L1,m);
}
无法输出