for(i=0;;i++) { scanf("%s,%d",student[i].name,&student[i].score); if(getchar()=='\n') break; }//没怎么看完你的程序,不过此处可以按上面的方式跳出循环,你的n之前未赋值
for(i=0;i {scanf("%s,%d",student[i].name,&student[i].score);}这个n你还没有赋初值,这个不是一般函数代码,这个是要执行的,必须要初值