行指针转参实现二维数组每一行按从小到大排列(排序算法采用选择性排序)
时间: 2023-09-17 08:07:47 浏览: 146
可以使用以下代码实现:
```c
#include <stdio.h>
void sortRow(int (*arr)[5], int rowSize) {
for (int i = 0; i < rowSize; i++) {
for (int j = 0; j < 4; j++) {
int minIndex = j;
for (int k = j + 1; k < 5; k++) {
if (arr[i][k] < arr[i][minIndex]) {
minIndex = k;
}
}
if (minIndex != j) {
int temp = arr[i][j];
arr[i][j] = arr[i][minIndex];
arr[i][minIndex] = temp;
}
}
}
}
int main() {
int arr[3][5] = {{5, 2, 9, 3, 1}, {8, 4, 6, 0, 7}, {1, 3, 2, 6, 5}};
sortRow(arr, 3);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
其中,`sortRow()` 函数采用选择排序算法对二维数组的每一行进行排序。在 `main()` 函数中,我们定义了一个 3 行 5 列的二维数组,并对其调用 `sortRow()` 函数进行排序。最后输出排序后的结果。注意,在 `sortRow()` 函数中,我们使用了指向二维数组的指针作为形参,这是因为我们需要修改数组的值,所以需要传递数组的地址。
阅读全文