我是 C 编程的新手,正在尝试编写一些排序程序。我做了线性/正常排序的程序。
现在我想编写一个程序来对二维数组进行排序。 即如果矩阵是
4 6 1
3 2 9
5 7 8
那么结果应该是
1 2 3
4 5 6
7 8 9
最佳答案
由于您希望二维数组按行排序,这恰好是多维数组在 C 中的存储顺序,因此您可以假装它是一维数组并按这种方式排序。
假设您有一个函数 void sort(int[], int size);
接受一个指向一维数组第一个元素及其大小的指针,您可以这样做
int a[3][3] = {{4,6,1}, {3,2,9}, {5,7,8}};
sort(&a[0][0], 9);
自然地,这只适用于真正的二维数组,不适用于指针数组,这是动态分配的二维数组通常在 C 中实现的方式。
关于c - 二维数组的线性排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5185302/