#include <stdio.h>
#include <stdlib.h>
struct student
{ int xuehao;
char xingming[20];
union chengji
{ int chengji1;
int chengji2;
int chengji3;
}cj;
};
struct student *p=NULL,student1;
void shuchu()
{
printf("基本学生信息:%d%s\n",p->xuehao,p->xingming);
printf("学生的第1门课程成绩为:");
printf("%d\n",p->cj.chengji1);
printf("学生的第2门课程成绩为:");
printf("%d\n",p->cj.chengji2);
printf("学生的第3门课程成绩为:");
printf("%d\n",p->cj.chengji3);
}
void main()
{ int i;
p=&student1;
p=(struct student *)malloc(sizeof(struct student));
printf("输入基本学生信息学好、姓名:");
scanf("%d\n",&p->xuehao);
scanf("%s\n",&(*p).xingming);
printf("输入学生3门课程的成绩:\n");
scanf("%d",p->cj.chengji1);
scanf("%d",p->cj.chengji2);
scanf("%d",p->cj.chengji3);
shuchu();
}
这错误在哪啊?
为什么我初入完学号和姓名后它不接着运行printf还得输入点什么才行
然后我运行的结果:

帮帮忙~~
#include <stdlib.h>
struct student
{ int xuehao;
char xingming[20];
union chengji
{ int chengji1;
int chengji2;
int chengji3;
}cj;
};
struct student *p=NULL,student1;
void shuchu()
{
printf("基本学生信息:%d%s\n",p->xuehao,p->xingming);
printf("学生的第1门课程成绩为:");
printf("%d\n",p->cj.chengji1);
printf("学生的第2门课程成绩为:");
printf("%d\n",p->cj.chengji2);
printf("学生的第3门课程成绩为:");
printf("%d\n",p->cj.chengji3);
}
void main()
{ int i;
p=&student1;
p=(struct student *)malloc(sizeof(struct student));
printf("输入基本学生信息学好、姓名:");
scanf("%d\n",&p->xuehao);
scanf("%s\n",&(*p).xingming);
printf("输入学生3门课程的成绩:\n");
scanf("%d",p->cj.chengji1);
scanf("%d",p->cj.chengji2);
scanf("%d",p->cj.chengji3);
shuchu();
}
这错误在哪啊?
为什么我初入完学号和姓名后它不接着运行printf还得输入点什么才行
然后我运行的结果:

帮帮忙~~