在我尝试要求任何事情之前,我会尽量澄清事情。所以我目前正在高中作为一名程序员学习。最近我的老师让我在 RAD Studio XE3 中创建一个 VCL 表单应用程序,有点像 C 程序,但只有表单和东西。
我必须创建矩阵 N*M(最终是二维字符数组),其中存储有拉丁字符。然后我不得不用插入排序方法对其进行排序。所以到目前为止我所做的是,我定义了数组,我创建了一个 StringGrid1 从中读取这些字符。我将它们存储到二维字符数组中,但对我来说最难的是让它按字母顺序对这些字符进行排序,但我不必将所有内容排序在一起,只需将每一行单独排序,然后进行最终更改回到 StringGrid1 (这不是问题)。
正如我之前所说,我在使这种事情发挥作用时遇到了一些重大困难。我已经浏览了十亿个例子,在 Google 上搜索了类似的 AGE。如果这些是整数值,那将一事无成,但我什至无法忍受 C 讨厌 String 值的事情。
我的程序:
http://i.stack.imgur.com/Brx9X.jpg
这就是我设法从 StringGrid1 字符读取并将它们存储到数组 [i] [j] 中的方式。mmax 和 nmax 用于告诉阅读的距离,因为用户可以自己选择行和列数。
for(int i=0; i < mmax; i++) //Rindas (kolonnas)
{
for(int j=0; j < nmax; j++) //Kolonnas (rindas)
{
char * temp = (char*)(StringGrid1->Cells[i][j]).c_str(); //Nolasam no Edit lauka char elementu
array[i][j] = temp[0]; //Piešķiram masīvam šo elementu
ListBox1->Items->Add(array[i][j]); //Ierakstam ListBox1 masīva elementu
Button3->Enabled = False;
Button6->Enabled = True;
}
}
StringGrid1->Options = StringGrid1->Options >> goEditing; //Neatļauj lietotājam rediģēt StringGrid1 laukus
所以,现在是排序的事情......我该怎么做?我没有线索了。如何从二维中对字符进行排序,以便每一行都应该单独排序,例如,有 5 行,并且每一行都被一一排序。