C语言,对二维数组排序
时间: 2023-02-07 18:01:16 浏览: 133
C语言 二维数组的排序方法
如果想要在 C 语言中对二维数组进行排序,你可以使用 qsort 函数。 qsort 函数是 C 语言标准库中的一个函数,它可以用来对数组中的元素进行排序。
下面是一个使用 qsort 函数对二维数组进行排序的示例:
```
#include <stdio.h>
#include <stdlib.h>
#define NROWS 3
#define NCOLS 4
int array[NROWS][NCOLS] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int compare(const void *a, const void *b)
{
int *x = (int *)a;
int *y = (int *)b;
return *x - *y;
}
int main(void)
{
int i, j;
qsort(array, NROWS * NCOLS, sizeof(int), compare);
for (i = 0; i < NROWS; i++)
{
for (j = 0; j < NCOLS; j++)
{
printf("%d ", array[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序将二维数组中的元素按照升序排列。如果你想按照降序排列,可以将 `compare` 函数中的 `return *x - *y;` 改为 `return *y - *x;`。
需要注意的是,qsort 函数是针对一维数组的,所以在调用 qsort 函数时,需要将二维数组转换为一维数组。这可以通过将二维数组名指定为首地址来实现。
此外,qsort 函数需要一个用于比较数组元素的函数。这个函数(在上面的示例中为 `compare`)需要接受
阅读全文