学生综合测评系统写排序功能,运行后print多了一行乱码

      文件的方法写的。

综合测评成绩我定义的公式是(语文+数学+英语+C语言)/4)*0.6+((品德+教室评分)/2)*0.4,就是前面四门占比60%,后面两门占比40%
但是运行后不知道为什么好像没有执行这个计算功能?算出来的综合成绩不对。而且还多了一行乱码
这是源码:

img

img


这是运行后的界面和文件里的界面

img

你再往文件中写数据的时候,都带回车符,所以,在paiming函数中,fscanf读取数据的时候多读取了一个空行,而你fscanf没有判断是否正确读取,导致多读了一次不完整的数据,n多++了一次。
fscanf还是要放在if语句中才行
如下:

while(!feof(fp))
    {
        if(fscanf(fp, "\t%s\t\%s\t%d\t%s\t%d\t%d\t%d\t%d\t%d\t%d", stu[n].name, stu[n].sex, &stu[n].num,
            stu[n].banji, &stu[n].Chinese, &stu[n].math, &stu[n].English, &stu[n].Clanguage, &stu[n].moral, &stu[n].Teacher)==10)
            ++n;            
    }

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^