行指针传参 分数 10 作者 叶斌 单位 成都信息工程大学 利用行指针传参实现二维数组的每一行按从小到大排序排序,(排序算法采用选择法排序)
时间: 2023-11-03 12:00:57 浏览: 171
下面是利用行指针传参实现二维数组每一行按从小到大排序的代码:
```c
#include <stdio.h>
void sort_row(int *p, int n) {
for (int i = 0; i < n - 1; i++) {
int min_index = i;
for (int j = i + 1; j < n; j++) {
if (*(p + min_index) > *(p + j)) {
min_index = j;
}
}
if (min_index != i) {
int temp = *(p + i);
*(p + i) = *(p + min_index);
*(p + min_index) = temp;
}
}
}
int main() {
int a[3][4] = {{9, 8, 7, 6}, {5, 4, 3, 2}, {1, 0, -1, -2}};
for (int i = 0; i < 3; i++) {
sort_row(*(a + i), 4);
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", *(*(a + i) + j));
}
printf("\n");
}
return 0;
}
```
输出结果:
```
6 7 8 9
2 3 4 5
-2 -1 0 1
```
在代码中,`sort_row` 函数用来对每一行进行排序,它接收一个整型指针 `p` 和数组的列数 `n`。在函数中,我们使用选择排序算法来排序每一行。最后,在主函数中,我们遍历每一行,并调用 `sort_row` 函数来对其排序。最终输出排序后的二维数组。
阅读全文