【发布时间】:2015-04-18 02:36:32
【问题描述】:
我必须根据第二列对排名和名称(用作字符串)的二维数组进行排序。我正在尝试按字母顺序对其进行排序,但似乎无法正确处理。我还是多维数组的新手,所以我还是很困惑。我正在使用Bubble Sort,它正在对名称进行排序,但顺序不正确。
这是我要排序的数组:
const int ROWS=6;
const int COLS=2;
string names [ROWS][COLS] = { "1", "Jacob",
"2", "Michael",
"3", "Joshua",
"4", "Matthew",
"5", "Ethan",
"6", "Andrew"};
这是我得到的:
2 Michael
4 Matthew
3 Joshua
1 Jacob
6 Andrew
5 Ethan
这是我正在使用的排序功能:
void sort (string names [][COLS], int size)
{
int i,j; // i = rows
string hold1, hold2;
for (i=0; i < size-1; i++)
{
for (j=0; j < size; j++)
{
if (names [i][1] > names [j][1]) //names = col 1 , rank = col 0
{
hold1 = names [i][1];
hold2 = names [i][0];
names [i][1] = names [j][1];
names [i][0] = names [j][0];
names [j][1] = hold1;
names [j][0] = hold2;
}
}
}
}
提前致谢。
【问题讨论】:
-
谢谢大家的帮助。我终于让它工作了。 :)