1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
#include <iostream>
#include <string>
using namespace std;
void initializeArrays(string names[], int scores[], int size) {
for (int i = 0; i < size; i++) {
cout << "Enter the name for score #" << i + 1 << ": ";
cin.ignore(1000, '\n');
getline(cin, names[i]);
cout << "Enter the score for score #" << i + 1 << ": ";
cin >> scores[i];
}
}
int findBiggest(int scores[], int startingIndex, int size) {
int targetIndex = startingIndex;
for (int i = startingIndex + 1; i < size; i++) {
if (scores[i] > scores[targetIndex]) {
targetIndex = i;
}
}
return targetIndex;
}
void sortData(string names[], int scores[], int size) {
for (int i = 0; i < size; i++) {
swap(names[findBiggest(scores, i, size)], names[i]);
swap(scores[findBiggest(scores, i, size)], scores[i]);
}
}
void displayData(string names[], int scores[], int size) {
cout << endl << "Top Scorers:" << endl;
for (int i = 0; i < size; i++) {
cout << names[i] << ": " << scores[i] << endl;
}
}
int main() {
cout << "How many score you will enter : ";
int limit = 0;
cin >> limit;
int *score_array = new int[limit];
string *name_array = new string[limit];
initializeArrays(name_array, score_array, limit);
sortData(name_array, score_array, limit);
displayData(name_array, score_array, limit);
}
| |