利用指针实现5行4列二维数组从大到小排序
时间: 2023-12-26 21:21:36 浏览: 68
好的,这个问题属于编程问题,我可以帮您回答。以下是利用指针实现5行4列二维数组从大到小排序的代码:
```
#include <stdio.h>
#define ROW 5 // 定义行数
#define COL 4 // 定义列数
// 交换两个数的值
void swap(int *a, int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
// 比较两个数的大小
int cmp(int a, int b)
{
return a < b;
}
// 二维数组排序
void arr_sort(int (*arr)[COL])
{
int i, j, k;
int *p;
for (i = 0; i < ROW; ++i) {
for (j = 0; j < COL; ++j) {
p = *(arr + i) + j;
for (k = j+1; k < COL; ++k) {
if (cmp(*(arr+i)[k], *p)) {
p = *(arr+i) + k;
}
}
if (p != *(arr+i)+j) {
swap(p, *(arr+i)+j);
}
}
}
}
int main()
{
int arr[ROW][COL] = { {5, 9, 3, 7},
{2, 8, 1, 6},
{4, 0, 2, 9},
{7, 5, 6, 8},
{1, 3, 4, 0} };
arr_sort(arr);
int i, j;
for (i = 0; i < ROW; ++i) {
for (j = 0; j < COL; ++j) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
这个代码中,我们定义了一个 `arr_sort` 函数来对二维数组进行排序,最后输出排序后的结果。如果您有任何问题或者需要进一步的帮助,请随时告诉我。
阅读全文