2301_78734628 2023-06-16 16:44 采纳率: 100%
浏览 57
已结题

为什么没有这些dat文件


void shuchu(SqList &s,FILE *fp){
    int i;
    if((fp=fopen("input.dat","w"))==NULL){
        printf("不能打开文件!\n");
        return ; 
    } 
    //挨个遍历加入文件
    for(i=0;i<s.length;i++){
        fprintf(fp,"学号:%s\t姓名:%s\t数学成绩:%.1lf\t英语成绩:%.1lf\t计算机成绩:%.1lf\t平均分:%.1lf\n",
            s.elem[i].number,s.elem[i].name,s.elem[i].mathscore,
            s.elem[i].englishscore, s.elem[i].computerscore, s.elem[i].averscore);
    }    
    fclose(fp);//关闭文件,释放缓存
}
//对每个科目的成绩进行排序 ,从大到小
//数学
void mathsort(SqList &s,FILE *fp11){
    student temp;
    int i,j; 
    if((fp11=fopen("数学成绩排序.dat","w"))==NULL){
        printf("不能打开文件!\n");
        return ; 
    } 
    for(i=0;i<s.length;i++){
        s.elem[i].averscore=(s.elem[i].computerscore+s.elem[i].englishscore+s.elem[i].mathscore)/3;
    }
    for(i=0;i<s.length-1;i++){
        for(j=0;j<s.length-1-i;j++){
            if(s.elem[j].mathscore<s.elem[j+1].mathscore){
                temp=s.elem[j];
                s.elem[j]=s.elem[j+1];
                s.elem[j+1]=temp;
            }
        }
    }
    printf("数学排序:\n");
    fprintf(fp11,"数学排序:\n");
    for(i=0;i<s.length;i++){
        fprintf(fp11,"学号:%s\t姓名:%s\t数学成绩:%.1lf\t\n",
            s.elem[i].number,s.elem[i].name,s.elem[i].mathscore);
        printf("学号:%s\t姓名:%s\t数学成绩:%.1lf\t\n",
            s.elem[i].number,s.elem[i].name,s.elem[i].mathscore);
    }
    fclose(fp11);
}
//英语
void englishsort(SqList &s,FILE *fp12){
    student temp;
    int i,j; 
    if((fp12=fopen("英语成绩排序.dat","w"))==NULL){
        printf("不能打开文件!\n");
        return ; 
    } 
    for(i=0;i<s.length;i++){
        s.elem[i].averscore=(s.elem[i].computerscore+s.elem[i].englishscore+s.elem[i].mathscore)/3;
    }
    for(i=0;i<s.length-1;i++){
        for(j=0;j<s.length-1-i;j++){
            if(s.elem[j].englishscore<s.elem[j+1].englishscore){
                temp=s.elem[j];
                s.elem[j]=s.elem[j+1];
                s.elem[j+1]=temp;
            }
        }
    }
    printf("英语排序:\n");
    fprintf(fp12,"英语排序\n");
    for(i=0;i<s.length;i++){
        fprintf(fp12,"学号:%s\t姓名:%s\t英语成绩:%.1lf\t\n",
            s.elem[i].number,s.elem[i].name,s.elem[i].englishscore);
        printf("学号:%s\t姓名:%s\t数学成绩:%.1lf\t英语成绩:%.1lf\t\n",
            s.elem[i].number,s.elem[i].name,s.elem[i].mathscore,
            s.elem[i].englishscore, s.elem[i].computerscore, s.elem[i].averscore);
    }
    fclose(fp12);
}
//计算机
void computersort(SqList &s,FILE *fp13){
    student temp;
    int i,j; 
    if((fp13=fopen("计算机成绩排序.dat","w"))==NULL){
        printf("不能打开文件!\n");
        return ; 
    } 
    for(i=0;i<s.length;i++){
        s.elem[i].averscore=(s.elem[i].computerscore+s.elem[i].englishscore+s.elem[i].mathscore)/3;
    }    
    for(i=0;i<s.length-1;i++){
        for(j=0;j<s.length-1-i;j++){
            if(s.elem[j].computerscore<s.elem[j+1].computerscore){
                temp=s.elem[j];
                s.elem[j]=s.elem[j+1];
                s.elem[j+1]=temp;
            }
        }
    }
    printf("计算机排序:\n");
    fprintf(fp13,"计算机排序:\n");
    for(i=0;i<s.length;i++){
        fprintf(fp13,"学号:%s\t姓名:%s\t计算机成绩:%.1lf\t\n",
            s.elem[i].number,s.elem[i].name, s.elem[i].computerscore);
        printf("学号:%s\t姓名:%s\t计算机成绩:%.1lf\n",
            s.elem[i].number,s.elem[i].name, s.elem[i].computerscore);
    }
    fclose(fp13);
} 
//定义函数average,向文件输入学生的各科平均成绩
void average(SqList s,FILE *fp2)  
{
    int i,j;
    student temp;
    if((fp2=fopen("平均成绩排序.dat","w"))==NULL){
        printf("不能打开文件!");
        return ; 
    } 
    for(i=0;i<s.length;i++){
        s.elem[i].averscore=(s.elem[i].computerscore+s.elem[i].englishscore+s.elem[i].mathscore)/3;
    }
    for(i=0;i<s.length-1;i++){
        for(j=0;j<s.length-1-i;j++){
            if(s.elem[j].averscore<s.elem[j+1].averscore){
                temp=s.elem[j];
                s.elem[j]=s.elem[j+1];
                s.elem[j+1]=temp;
            }
        }
    }
    printf("按平均分排序:\n");
    fprintf(fp2,"按平均分排序:\n");
    for(i=0;i<s.length;i++){
        fprintf(fp2,"学号:%s\t姓名:%s\t数学成绩:%.1lf\t英语成绩:%.1lf\t计算机成绩:%.1lf\t平均分:%.1lf\n",
            s.elem[i].number,s.elem[i].name,s.elem[i].mathscore,
            s.elem[i].englishscore, s.elem[i].computerscore, s.elem[i].averscore);
        printf("学号:%s\t姓名:%s\t数学成绩:%.1lf\t英语成绩:%.1lf\t计算机成绩:%.1lf\t平均分:%.1lf\n",
            s.elem[i].number,s.elem[i].name,s.elem[i].mathscore,
            s.elem[i].englishscore, s.elem[i].computerscore, s.elem[i].averscore);
    }        
    fclose(fp2);
} 
  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2023-06-16 16:48
    关注

    啥意思?是报错了?还是你找不到文件写到哪里去了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 创建了问题 6月16日

悬赏问题

  • ¥15 纯C++ 简单图色对比 灵敏度低的问题
  • ¥15 麒麟ARM机器安装chromium浏览器
  • ¥15 grbl 限位开关初始遮挡怎么处理?
  • ¥15 输入网址无法跳转,如何解决?(关键词-CONNECT)
  • ¥15 kubekey离线安装k8s及kubesphere报错
  • ¥15 avalonia开发海康SDK怎么在linux实现预览?
  • ¥15 keil5运行结果报错如下该怎么办
  • ¥300 New-API新增渠道调试
  • ¥20 zookeeper单服务器集群搭建,2888和2890端口没有监听
  • ¥15 电梯与AGV小车,modbus转HTTP ,.