我想按相應輸入名稱的升序對年齡進行排序,然後根據該名稱顯示列表。我設法對它們進行排序,但我似乎無法正確顯示其年齡的名稱。排序輸入名稱的「年齡」,然後顯示結果
這裏是我的代碼: -
#include <iostream>
using namespace std;
int main()
{
char name [5][25];
int age [5];
int i;
for (i=0 ; i<5 ; i++)
{
cout << "Enter name " << i+1 << " : ";
cin >> name [i];
cout << "Enter age : ";
cin >> age [i];
cout << endl;
}
cout << "\n********** Your entered data **********\n\n";
cout << "\tName" << "\t\t" << "Age\n\n";
for (i=0 ; i<5 ; i++)
{
cout << "\t" << name [i] << "\t\t" << age [i];
cout << endl;
}
int hold;
for (i=0 ; i<5 ; i++)
{
for (int j=0 ; j<5 ; j++)
{
if (age [j] > age [j+1])
{
hold = age [j];
age [j] = age [j+1];
age [j+1] = hold;
}
}
}
cout << "\n\n******* Sorted data (w.r.t age) *******\n\n";
cout << "\tName" << "\t\t" << "Age\n\n";
for (i=0 ; i<5 ; i++)
{
cout << "\t" << name [i] << "\t\t" << age [i];
cout << endl;
}
return 0;
}
問題是與最後一個for
循環。你們中的任何人都可以幫我實施這個邏輯嗎?
最後一個for循環的問題是什麼?我看起來很好。也許你的問題在別處。提示:當你換了一些年齡時,你應該如何處理相應的名字? –
@JoeZ是的你說得對,問題在於交換不是'for'循環。 :-) –