這個主要是練習使用結構體和文件基本操作的。
#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");
}
這是運行結果,界面可能不太友好的說