zoukankan      html  css  js  c++  java
  • 文件写入-结构体排序

    /*
    3、编写一个程序,实现如下功能:
    (1)将5个学生的信息(包括学号、姓名、成绩三项信息)写入到file1中。
    (2)从file1中读出5个学生的信息,按成绩自高到低排序,排序后的结果写入到文件file2中。
    */
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define N 5
    
    typedef struct student
    {
        int num;
        char name[8];
        float socre;
    }Student;
    
    //写入成绩并且返回stu值
    void write(char *file,FILE *fp,Student *stu)
    {
        if((fp=fopen(file,"w"))==NULL)
        {
            printf("文件创建失败");
            return;
        }
        
        for(int i=0;i<N;i++)
        {
            fprintf(fp,"%d %s %.2f
    ",stu[i].num,stu[i].name,stu[i].socre);
        }
        fclose(fp);
    }
    
    //排序准备写入文件2的数据
    Student *sort(Student *stu2)
    {
        Student tmp;//结构体临时变量,不要定义为*tmp会报错!!!
    
        //冒泡排序
        for(int i=0;i<N-1;i++)
        {
            for(int j=0;j<N-i-1;j++)
            {
                if(stu2[j].socre<stu2[j+1].socre)
                {
                    tmp     =  stu2[j];
                    stu2[j]  = stu2[j+1];
                    stu2[j+1]= tmp ;
                }
            }
        }
    }
    
    int main()
    {
        FILE *fp;
        char *file1="D:\test1.txt",*file2="D:\test2.txt";
    
        //准备成绩
        Student stu[N];
        printf("请输入五位个学生的学号/姓名/成绩(格式为xxxxx xx xx):
    ");
        for(int i=0;i<N;i++)
        {
            scanf("%d %s %f",&stu[i].num,stu[i].name,&stu[i].socre);
            getchar();
        }
    
        //写入text1
        write(file1,fp,stu);
    
        //排序成绩
        Student *stu2;
        stu2 = sort(stu);
    
        //写入text2
         write(file2,fp,stu);
    
        system("pause");
    }
  • 相关阅读:
    笔记44 Hibernate快速入门(一)
    tomcat 启用https协议
    笔记43 Spring Security简介
    笔记43 Spring Web Flow——订购披萨应用详解
    笔记42 Spring Web Flow——Demo(2)
    笔记41 Spring Web Flow——Demo
    Perfect Squares
    Factorial Trailing Zeroes
    Excel Sheet Column Title
    Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/huxiaobai/p/10205152.html
Copyright © 2011-2022 走看看