使用vector動態紀錄資料,全部輸入後使用getHighScores函數三次,此函數每次會找到該次最大值,輸出後把該質歸零。
程式碼:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
void getHighScores(vector<string> &names, vector<int> &scores)
{
int maxScore = 0, mark = 0, i;
for (i = 0; i < scores.size(); i++)
{
if (scores[i] > maxScore)
{
maxScore = scores[i];
mark = i;
}
}
cout << names[mark] << endl;
cout << maxScore << endl;
scores[mark] = 0;
}
int main()
{
//fstream file;
//file.open("scores.txt", ios::in);
vector<int> scores;
vector<string> names;
string temp_name;
int temp_score;
while (cin >> temp_name >> temp_score) //read file
{
names.push_back(temp_name);
scores.push_back(temp_score);
}
getHighScores(names, scores);
getHighScores(names, scores);
getHighScores(names, scores);
//file.close();
return 0;
}
沒有留言:
張貼留言