我正在尝试按字母顺序对名称进行排序,例如如果用户输入名称和 GPA:
Names GPA
Peter 2.8
Robert 5.6
David 7.8
输出应该是: -
Names GPA
David 7.8
Peter 2.8
Robert 5.6
到目前为止,这是我的程序( 未完成):-
#include <iostream>
using namespace std;
int main()
{
char name [5][25];
float gpa [5];
int i;
for (i=0 ; i<5 ; i++)
{
cout << "Enter name " << i+1 << " : ";
cin >> name [i];
cout << "Enter GPA : ";
cin >> gpa [i];
cout << endl;
}
cout << "\n********** Your entered data **********\n\n";
cout << "\tName" << "\t\t" << "GPA\n\n";
for (i=0 ; i<5 ; i++)
{
cout << "\t" << name [i] << "\t\t" << gpa [i];
cout << endl;
}
for (i=0 ; i<5 ; i++)
{
for (int j=0 ; j<1 ; j++)
{
cout << (int) name [i][j] << endl;
}
}
cout << "\n\n******* Sorted data (w.r.t name) *******\n\n";
cout << "\tName" << "\t\t" << "GPA\n\n";
for (i=0 ; i<5 ; i++)
{
cout << "\t" << name [i] << "\t\t" << gpa [i];
cout << endl;
}
cout << endl;
return 0;
}
请记住,只有名称应按字母顺序排序。我已经取了中间输入名称的第一个字符的 ASCII 值 for
循环但是:- 1- ’s’ 的 ASCII 码与 ’S’ 不同(这对我来说是个问题) 2-我似乎无法创建一个逻辑来比较名称的第一个字母的 ASCII 值,然后对它们进行相应的排序。然后将名称与排序的字母列表链接并显示结果。 GPA 也应与名称相关联。
任何帮助,将不胜感激。
原文由 Silver Falcon 发布,翻译遵循 CC BY-SA 4.0 许可协议