typedef struct {
char sno[3];
char n[10];
int grade;
}Student;
typedef struct node {
Student date;
struct node *next;
}Node,*LinkNode;
void headInsert(Node **l){
Node * h = (Node *)malloc(sizeof(Node));
if((*l) == NULL){
(*l) = h;
h->next = NULL;
}else{
h= (*l)->next;
}
Student ss;
int f = 1;
int d;
while(f){
printf("录入学生信息输入1,退出输入0 \n");
scanf("%d",&d);
if(d == 1){
Node * s = (Node *)malloc(sizeof (Node));
s->next = h->next;
h->next = s;
printf("\n输入学生的学号\n");
scanf("%s",ss.sno);
printf("\n输入学生的姓名\n");
scanf("%s",ss.n);
printf("\n输入学生的成绩\n");
scanf("%d",&ss.grade);
s->date = ss;
}else{
f=0;
}
}
printf("录入成功\n");
}
//查看学生的信息
void showStudent(Node *l){
while(l->next){
l = l->next;
printf("%s %s %d \n",l->date.sno,l->date.n,l->date.grade);
}
}
序号字符串长度不够啊。你输入123,数组长度至少要4个才行,因为最后一个必须存储字符串换行符才行。
char sno[3]; 改为 char sno[10]吧,别那么小气