題目:
某大學開田徑運動會,現有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;
}