体能测试成绩表
编号 姓名 性别 5km 俯卧撑 仰卧起坐 400m游泳 总分
01 张一 男 78 91 89 78 326
02 张二 女 80 68 59 75 282
03 张三 男 68 56 58 49 231
04 张四 男 56 45 78 89 268
05 张五 男 89 89 88 78 344
06 王一 女 75 89 46 68 278
07 王二 女 51 87 91 57 286
08 王三 男 48 78 84 68 278
09 王四 男 70 55 65 67 257
10 王五 男 61 68 65 66 260
要求用c语言编写,将总分排序(由高到低),并按总分从高到低输出成绩表。
请先将成绩表下载保存在“文本文档”中,通过文件调用将其输出在屏幕上,在对成绩表的总成绩进行排序,最后把成绩表的成绩由高到低重新排列成绩表,最后将排好的成绩表输出。。。小弟在此谢谢各位大仙!!小弟已将文件调用编好了(我把成绩表保存在d:\\1.txt目录下),如下:
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
char ch;
if((fp=fopen("d:\\1.txt","rt"))==NULL)
{
printf("\nCannot open file strike any key exit!");
getchar();
exit(1);
}
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}
跪求啊!!!
#include<stdio.h>
#include<stdlib.h>
struct test
{
char num[3];
char name[20];
char sex[10];
int run;
int fw;
int yw;
int swim;
int total;
}a[10];
void main()
{
int i,j;
struct test b;
FILE *fp;
fp=fopen("1.txt","r");
if(fp==NULL)
{
printf("文件打开错误!\n");
exit(0);
}
for(i=0;i<10;i++)
fscanf(fp,"%s %s %s %d %d %d %d %d\n",a[i].num,a[i].name,a[i].sex,&a[i].run,&a[i].fw,&a[i].yw,&a[i].swim,&a[i].total);
fclose(fp);
for(i=0;i<9;i++)
for(j=0;j<10-i;j++)
if(a[j].total<a[j+1].total)
{
b=a[j];
a[j]=a[j+1];
a[j+1]=b;
}
printf("\n编号 姓名 性别 5km 俯卧撑 仰卧起坐 400m游泳 总分\n");
for(i=0;i<10;i++)
printf("%s %s %s %d %d %d %d %d\n",a[i].num,a[i].name,a[i].sex,a[i].run,a[i].fw,a[i].yw,a[i].swim,a[i].total);
printf("\n");
}
好了这下满足你的要求了!
!!!!!!!!对了,你自己改下文件名字哈!我为了方便就没用你写的那个文件名!