学生成绩录入之后要插入一个学生并排序怎么弄喃
#include"stdio.h"#include"stdlib.h"
#define M 5
#define stu struct student
stu
{
int num;
char name[10];
float N1;
float N2;
float N3;
float avg;
};
void main()
{
stu st[M],temp;
FILE *fp,*fp1;
int i,j;
for(i=0;i<M;i++)
{
scanf("%d%s%f%f%f",&st[i].num,st[i].name,&st[i].N1,&st[i].N2,&st[i].N3);
st[i].avg=(st[i].N1+st[i].N2+st[i].N3)/3;
}
if((fp=fopen("stud.txt","wb"))==NULL)
{
printf("cannot open file\n");
}
for(i=0;i<M;i++)
{
if(fwrite(&st[i],sizeof(stu),1,fp)!=1)
printf("file write error\n");
}
fclose(fp);
fp=fopen("stud","rb");
printf("num\tname\tscore1\tscore2\tscore3\taverage\n");
for(i=0;i<M;i++)
{
fread(&st[i],sizeof(stu),1,fp);
printf("%d\t%s\t%f\t%f\t%f\t%f\n",st[i].num,st[i].name,st[i].N1,st[i].N2,st[i].N3,st[i].avg);
}
printf("排序后的成绩\n");
for(i=0;i<M;i++)
for(j=i+1;j<M;j++)
if(st[i].avg<st[j].avg)
{
temp=st[i];
st[i]=st[j];
st[j]=temp;
}
fp1=fopen("stu_sort.txt","w");
for(i=0;i<M;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
printf("%d\t%s\t%f\t%f\t%f\t%f\n",st[i].num,st[i].name,st[i].N1,st[i].N2,st[i].N3,st[i].avg);
}
fclose(fp1);
}
怎么插入喃