你要交换student,而不是只交换成绩啊。
student t; t = *(p+j); *(p+j) = *(p+j+1); *(p+j+1) = t;
因为你没有交换名字呀,你交换名字的代码呢
你有一段代码是关于信息交换的,就是t的那三行,你把.name也同时换上,或者换的时候不要.score只用score判断
你在最后一个if里边,把那三行代码原封不动的copy一下,把.score换成.name就好了。你只是把结构体中的分数做了交换,换汤不换药,所以输出的不是你要的结果