scanf("%d%*c",&n);就行了。 这里%*c的意思是读入一个字符(也就是回车),但是不保存到任何变量里。
scanf("%d %s %f %f ",&(p+i)->num,(p+i)->name,&(p+i)->score1,&(p+i)->score2,&(p+i)->score3);//这段代码里面从键盘只读取了4个值,却要赋值给5个成员,少了一个%f。scanf("%d %s %f %f %f",&(p+i)->num,(p+i)->name,&(p+i)->score1,&(p+i)->score...