年龄定义的是char,但下面输出的时候是%s,成绩是数组类型,应该依次输出
#include<stdio.h>
typedef struct student{
long studentId;
char studentName[10];
char studentSex[10];
int studentAge;
int studentScore[4];
}STUDENT;
int main() {
STUDENT stu[5];
int i,j;
printf("请依次输入学生的学号,姓名,性别,年龄,语文成绩,数学成绩,英语成绩,程序设计成绩\n");
for(i=0;i<5;i++){
scanf("%ld",&stu[i].studentId);
scanf("%s",stu[i].studentName);
scanf("%s",stu[i].studentSex);
scanf("%d",&stu[i].studentAge);
for(j=0;j<4;j++){
scanf("%d",&stu[i].studentScore[j]);
}
}
printf("学号\t姓名\t性别\t年龄\t语文成绩\t数学成绩\t英语成绩\t程序设计成绩\n");
for(i=0;i<5;i++){
printf("%ld\t%s\t%s\t%d\t",stu[i].studentId,stu[i].studentName,stu[i].studentSex,stu[i].studentAge);
for(j=0;j<4;j++){
printf("%d\t",stu[i].studentScore[j]);
}
printf("\n");
}
return 0;
}
每个scanf函数后面加一行语句,fflush( stdin);
scanf("%c",&stu[i].studentSex);