16、17行的i应该改为i-1啊
而且姓名,学好在同一行,是不能用gets的,gets直接接收一行数据
改为
scanf("%s%s%d",stu[i-1].name,stu[i-1].xuehao,&stu[i-1].score);
修改如下,供参考:
#include <stdio.h>
int main()
{
typedef struct{
char name[11]; //修改 name[10]
char xuehao[11];//修改 xuehao[10]
int score;
}stu;
int num,min=0,max=0;
stu stud[10];
scanf("%d", &num);
for (int i = 0; i < num; i++)
{
scanf("%s %s %d",stud[i].name,stud[i].xuehao,&stud[i].score);//修改
if (stud[i].score > stud[max].score)
max = i;
if (stud[i].score < stud[min].score)
min = i;
}
printf("%s %s\n",stud[max].name,stud[max].xuehao);
printf("%s %s", stud[min].name,stud[min].xuehao);
return 0;
}