题目:
某大学开田径运动会,现有12名选手参加100米比赛,对应的运动员号及成绩放在文件中,请读入文件中数据,并按照成绩排名将结果输出至新文件,要求用冒泡法排序。
/*某大学开田径运动会,现有12名选手参加100米比赛,对应的运动员号及成绩放在文件中,
请读入文件中数据,并按照成绩排名将结果输出至新文件,要求用冒泡法排序。*/
#include <iostream>
#include <fstream>
using namespace std;
typedef struct Sporter{
int num;
float score;
}SPORTER;
int main()
{
SPORTER* members = new SPORTER[12]; //申请一组12个单位的SPORTER类型的内存空间并将地址传给members
ifstream siFile("beforescores.txt"); //文件读取
for (int i=0;i<12;i++)
{
siFile>>members[i].num;
siFile>>members[i].score;
}
siFile.close(); //文件关闭
for (int i=0;i<12;i++)
cout<<members[i].num<<"\t"<<members[i].score<<endl;//输出显示
for(int i=0;i<12;i++) //冒泡法对members[]进行排序
{
for(int j=i+1;j<12; j++)
{
if(members[i].score>members[j].score)
{
SPORTER m=members[i]; //定义一个中间变量m
members[i]=members[j];
members[j]=m;
}
}
}
ofstream soFile("afterscores.txt"); //文件存储
for (int i=0;i<12;i++)
soFile<<members[i].num<<"\t"<<members[i].score<<endl;
soFile.close();
//释放空间
delete[] members;
return 0;
}