有關C語言編程的問題
15
題目:學生的記錄由學號和成績組成,N名學生的數據已在主函數中放入結構體數組s中,請編寫函數fun,功能是:按照分數的高低排列學生的記錄,高分在前。並將數據存入文件中。高手來,
最佳回答:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct stu
{
int nNum,nScore;
};
int cmp(const void *a,const void *b);
int main()
{
int n,i;
stu *s;
char szTemp[100];
scanf("%d",&n);
s=new stu[n];
for(i=0;i<n;i++){
scanf("%d%d",&s[i].nNum,&s[i].nScore);
}
qsort(s,n,sizeof(stu),cmp);
FILE *output=fopen("d:\\myfile.txt","w+");
if(output==NULL){
delete [] s;
return 0;
}
for(i=0;i<n;i++){
sprintf(szTemp,"%d %d\n",s[i].nNum,s[i].nScore);
fprintf(output,"%s",szTemp);
}
delete [] s;
return 0;
}
int cmp(const void *a,const void *b)
{
return (*(stu*)b).nScore-(*(stu*)a).nScore;
}