但是当我运行输入信息的时候,显示到性别后就结束运行了,怎么回事
应该是因为读取字符使用了%s而导致读取数据出错了,把性别字段改为字符数组即可,其他字段也可以改为字符数组,或者可以把对应的scanf里面的%s改为%c(但需要在读取字符后把输入的换行符等多余字符读走),以对应相应字段为字符数据类型,下面的例子把字符字段改为了字符数组,修改如下:
#include <stdio.h>
struct student{
int num,age;
char name[10000];
char jg[20];
char sex[10];
char zy[20];
char bj[20];
char xb[20];
};
int main(void){
int n,i;
printf("请输入操作学生人数:");
scanf("%d",&n);
struct student stu[n];
printf("对应顺序输入一下信息即可\n");
for(i=0;i<n;i++){
printf("姓名:");
scanf("%s",stu[i].name);
printf("学号:");
scanf("%d",&stu[i].num);
printf("性别:");
scanf("%s",stu[i].sex);
printf("年龄:");
scanf("%d",&stu[i].age);
printf("籍贯:");
scanf("%s",stu[i].jg);
printf("系别:");
scanf("%s",stu[i].xb);
printf("专业班级:");
scanf("%s",stu[i].bj);
printf("\n");
}
printf("输入的信息如下:\n");
for(i=0;i<n;i++){
printf("姓名:");
printf("%s",stu[i].name);
printf(",学号:");
printf("%d",stu[i].num);
printf(",性别:");
printf("%s",stu[i].sex);
printf(",年龄:");
printf("%d",stu[i].age);
printf(",籍贯:");
printf("%s",stu[i].jg);
printf(",系别:");
printf("%s",stu[i].xb);
printf(",专业班级:");
printf("%s\n",stu[i].bj);
}
}
你性别的scanf后面的结构体变量前少了个&,结构体不像数组,它是需要&的