C语言之排学生成绩

来源:互联网 发布:软件测试技术提高 编辑:程序博客网 时间:2024/04/18 09:43

这个主要是练习使用结构体和文件基本操作的。

#include<stdio.h>#include<string.h>struct grade{int ID;char name[20];int score1;int score2;int score3;float average;};void main(){   int i,n;printf("please input students'number\n");scanf("%d",&n);i=n;struct grade student[100];for(i=0;i<n;i++){printf("please input students'ID,name,C,English and math score\n");scanf("%d %s %d %d %d",&student[i].ID,student[i].name,&student[i].score1,&student[i].score2,&student[i].score3);student[i].average=float(student[i].score1+student[i].score2+student[i].score3)/3;printf("student'id is %d,name is %s and average is %.2f\n",student[i].ID,student[i].name,student[i].average); }printf("\n");int j;struct grade temp;for(j=0;j<n;j++){for(i=0;i<n-j-1;i++){if(student[i].average<student[i+1].average){temp=student[i];student[i]=student[i+1];student[i+1]=temp;}}}for(i=0;i<n;i++)printf("%d %s %.2f\n",student[i].ID,student[i].name,student[i].average);FILE *fp;fp=fopen("s.txt","w");for(i=0;i<n;i++)fprintf(fp,"%d %s %.2f\n",student[i].ID,student[i].name,student[i].average);fclose(fp);printf("\n");}             
这是运行结果,界面可能不太友好的说



原创粉丝点击