《按分数的高低排列学生的记录,高分在前.docx》由会员分享,可在线阅读,更多相关《按分数的高低排列学生的记录,高分在前.docx(3页珍藏版)》请在三一办公上搜索。
1、按分数的高低排列学生的记录,高分在前学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。#include <stdio.h>#define N 16typedef struct char num10;int s ;STREC;int fun (STREC a)int i,j;STREC t;for(i=1;i<N;i+) /*用冒泡法进行排序,进行N-1次比较*/for(j=0;j<N-1;j+) /*在每一次比较中要进行N-1次两两比较*/if(aj.s<aj+1.s)t=aj;aj
2、=aj+1;aj+1=t; /*按分数的高低排列学生的记录,高分在前*/main FILE *wf;STREC sN= GA005,85,GA003,76,GA002,69,GA004,85,GA001,91,GA007,72,GA008,64,GA006,87,GA015,85,GA013,91,GA012,64,GA014,91,GA011,66,GA017,64,GA018,64,GA016,72;int i; FILE *out;fun(s);printf(The data after sorted :n);for (i=0; i<N; i+)if(i)%4=0) /*每行输出4个学生记录*/printf(n);printf(%s %4d,si.num,si.s); printf(n);out=fopen(out65.dat, w);for(i=0; i<N; i+)if(i)%4=0&i) fprintf(out, n);fprintf(out, %4d,si.s);fprintf(out, n);fclose(out);/*/wf=fopen(out.dat,w);for (i=0; i<N; i+)if(i)%4=0&i) fprintf(wf,n);fprintf(wf,%s %4d,si.num,si.s); fclose(wf);/*/