用C语言写一个程序满足以下要求,二维3*3数组{(1,3,5,7,9,2,4,6,8},用插队法排序,从大到小,采用x坐标和y坐标二维循环遍历数组各个元素,排序完成后,采用3行打印排序后的二维数组
时间: 2023-02-11 14:01:49 浏览: 138
以下是用 C 语言实现二维 3*3 数组排序的程序示例:
```C
#include <stdio.h>
void insertionSort(int arr[][3])
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
int key = arr[i][j];
int k = i * 3 + j - 1;
while (k >= 0 && arr[k / 3][k % 3] < key)
{
arr[k / 3][k % 3] = arr[(k + 1) / 3][(k + 1) % 3];
k--;
}
arr[(k + 1) / 3][(k + 1) % 3] = key;
}
}
}
int main()
{
int arr[3][3] = {{1,3,5},{7,9,2},{4,6,8}};
insertionSort(arr);
printf("排序后的二维数组: \n");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
printf("%d ", arr[i][j]);
printf("\n");
}
return 0;
}
```
说明:
- 使用插队法(insertion sort)进行排序,将二维数组看做一维数组处理
- 使用二重循环遍历二维数组各个元素
- 排序完成后,使用3行打印排序后的二维数组
- 采用3行打印排序后的二维数组, 就是在main 函数中的 for (int i = 0; i < 3; i++) 这里
阅读全文