不要用gets()函数,这个函数会从输入缓冲区开始读入数据,直到碰到'\0'为止;
因此你上一次输入的回车符在下一次的gets()时会被自动读入
改用
scanf_s("%s%d%d%d%d", x[i].name,20,&x[i].xuehao, &x[i].shuxue, &x[i].yingyu, &x[i].cyuyan);
x[i].zhongfen = x[i].shuxue + x[i].yingyu + x[i].cyuyan;
}
即可。
在scanf_s后面加上一句getchar();
有可能是输入第二行之后的那个回车被第二次循环的gets接收了。