清晨小鹿敲门 2022-01-11 21:37 采纳率: 91.7%
浏览 41
已结题

成绩管理系统中sort函数出现错误

#include<stdio.h>
struct students
{
int num;
char name[10];
float math;
float eng;
float cy;
};
double average(float a,float b,float c)
{
double aver ;
aver=(a+b+c)/3;
return aver;
}
void sort(struct students a[3],double aver[3])
{
int i,j;
double t;
FILEfg;
fg=fopen("score_aver . txt","w");
for(i=0;i<2;i++ )
for(j=0;j<3-i;j++)
if(aver[i]<aver[j])
{
t=aver[i];
aver[i]=aver[j];
aver[j]=t;
}
for(i=0;i<3;i++)
{
fprintf(fg,"%d%s%f%f%f%lf",a[i].num,a[i].name ,a[i].math,a[i].eng ,a[i].cy ,aver[i]);
printf("%d%5%f%f%f%lf",a[i].num,a[i].name,a[i].math,a[i].eng,a[i].cy,aver[i]);
}
fclose(fg);
}
int main()
{
struct students a[3];
int i;
double aver[3]={0};
FILE
fp, *fg ;
fp=fopen("score.txt" ,"r");
fg=fopen("score_ aver txt","w");
fprintf(fg,"姓名 高数 英语 c语言 平均分");
printf("姓名 高数 英语 c语言");
for(i=0;i<3;i++)
{
fscanf(fp ,"%d%s%f%f%f" ,&a[i] .num,&a[i].name ,&a[i].math,&a[i] .eng ,&a[i].cy);
aver[i]=average(a[i].math,a[i].eng,a[i].cy);
}
sort(struct students a[3],aver[3]);
fclose(fp);
fclose(fg);
return 0;
}

  • 写回答

2条回答 默认 最新

  • Code_流苏 C/C++领域优质创作者 2022-01-11 23:39
    关注

    举个例子,题主可尝试下述思路:

    #include <stdio.h>
    #include <conio.h>
    
    struct student
    {
        char num[20];//学号
        char name[20];//姓名
        int s1,s2,s3;//三门课成绩
        double ave;//平均成绩
    };
    
    int main()
    {
        struct student stu[5];
        FILE* fp;
        int i;
        printf ("请输入3名学生的学号、姓名、3门课的成绩,空格分隔,回车结束\n");
        for (i=0;i<3;i++)
            scanf ("%s %s %d %d %d",stu[i].num,stu[i].name,&stu[i].s1,&stu[i].s2,&stu[i].s3);
        for (i=0;i<3;i++)//计算平均成绩
            stu[i].ave=(stu[i].s1+stu[i].s2+stu[i].s3)/3.0;
        fp=fopen("stu_list.txt","w");//以"写"方式打开文件
        for (i=0;i<3;i++)
            fprintf (fp,"%s %s %d %d %d %lf\n",stu[i].num,stu[i].name,stu[i].s1,stu[i].s2,stu[i].s3,stu[i].ave);
        fclose(fp);
        
        return 0;
        
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月20日
  • 已采纳回答 1月12日
  • 创建了问题 1月11日

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图