我正在尝试按字母顺序对 2D 名称数组进行排序,但我无法缝合以使其正常工作。
我对字母使用了冒泡排序,这可以很好地对名称的第一个字母进行排序,但是其中 3 个名称以相同的字母开头,它们仍然是乱序的。
我已经尝试过 googleing 和其他东西,但每个 ting 都说要使用向量或字符串变量..但我仅限于使用 2d char 数组..
有任何想法吗?
这是我目前几乎可以使用的代码:
using namespace std;
int main (){
char heroes[11][17] = { "Captain America", "Thor", "Wolverine", "Cyclops", "Goliath", "Beast", "Angel", "Colossus", "Hulk", "Quicksilver", "Ironman"};
cout<<"Printing the array as is"<<endl<<endl;
for (int i=0; i<12; i++){
cout<<heroes[i]<<endl;
}
cout<<endl<<"Ordering the heroes in Alphabetical order"<<endl<<endl;
char temp = NULL;
// bubble sort
for(int i=0;i<11;i++){
for(int j=0; j<(11-1); j++){
if (heroes[i][0] < heroes[j][0]){
for (int k=0; k<17-1; k++){
swap(heroes[i][k], heroes[j][k]);
}
}
}
}
cout<<"Printing the array Sorted"<<endl<<endl;
for (int i=0; i<12; i++){
cout<<heroes[i]<<endl;
}
// Pause
cout<<endl<<endl<<endl<<"Please Close Console Window"<<endl;
cin.ignore('\n', 1024);
return(0);
}
好的,我搞定了!!!
这是代码...(顺便说一句,我如何在此表单上发布代码?)
它几乎完全相同,但使用完整的字符串比较和副本。