编写一个c++程序,要求是用指针的方法实现对二维数组的排序
时间: 2024-03-22 20:37:27 浏览: 86
指针与二维数组-指针与数组
好的,我可以为您提供一个简单的示例程序:
```c++
#include <iostream>
using namespace std;
void sort(int *arr[], int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
for (int k = j + 1; k < cols; k++) {
if (*(*(arr + i) + j) > *(*(arr + i) + k)) {
int temp = *(*(arr + i) + j);
*(*(arr + i) + j) = *(*(arr + i) + k);
*(*(arr + i) + k) = temp;
}
}
}
}
}
int main() {
int arr[3][4] = {{2, 4, 1, 3}, {6, 8, 5, 7}, {10, 12, 9, 11}};
int *ptr[3];
for (int i = 0; i < 3; i++) {
ptr[i] = arr[i];
}
sort(ptr, 3, 4);
cout << "Sorted Array:" << endl;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << *(*(ptr + i) + j) << " ";
}
cout << endl;
}
return 0;
}
```
在这个程序中,我们首先定义了一个二维数组 `arr`,然后定义了一个指针数组 `ptr`,并将 `ptr` 中的每个元素都指向 `arr` 中的每一行。接着,我们调用 `sort` 函数,使用冒泡排序的方法对每一行进行排序。最后,我们输出排序后的二维数组。
需要注意的是,在这个程序中,我们使用了指针的指针来访问二维数组中的元素。这是因为二维数组在内存中是按行存储的,而我们需要对每一行进行排序,所以需要使用指向指针的指针来实现对每一行的访问。
阅读全文