|
|
发表于 2021-1-2 14:45:13
|
显示全部楼层
本帖最后由 风过无痕1989 于 2021-1-2 21:19 编辑
- #include <stdio.h>
- int main()
- {
- int sort(int *p, int n);
- int a[5][5];
- int b[25];
- int i, j, k = 0;
- int temp1, temp2, temp3, temp4;
- printf("请输入数组元素:\n");
- for (i = 0; i < 5; i++)
- {
- for (j = 0; j < 5; j++)
- {
- scanf_s("%d", &a[i][j]);
- b[k] = a[i][j];
- k++;
- }
- }
- sort(b, k);
- printf("\n");
- temp1 = b[1];
- temp2 = b[2];
- temp3 = b[3];
- temp4 = b[24];
- for (j = 1; j < 4; j++) // 处理第 0 行
- {
- b[j] = b[j + 3];
- }
- b[4] = temp1;
- for (j = 5; j < 12; j++) // 处理第 1 行及第 2 行前半
- {
- b[j] = b[j + 2];
- }
- b[12] = temp4;
- for (j = 13; j < 20; j++) // 处理第 2 行后半第 3 行
- {
- b[j] = b[j + 2];
- }
- b[20] = temp2;
- for (j = 21; j < 24; j++) // 处理第 4 行
- {
- b[j] = b[j + 1];
- }
- b[24] = temp3;
- k = 0;
- for (i = 0; i < 5; i++) // 一维数组转二维数组
- {
- for (int j = 0; j < 5; j++)
- {
- a[i][j] = b[k];
- k++;
- }
- }
- for (i = 0; i < 5; i++) // 输出数组
- {
- for (j = 0; j < 5; j++)
- {
- printf("%2d ", a[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
- int sort(int *p, int n) // 对一维数 b 组排序
- {
- int i, j, temp;
- for (i = 0;i < n;i++)
- {
- for (j = 0;j < n - 1;j++)
- {
- if (*(p + j) > *(p + j + 1))
- {
- temp = *(p + j);
- *(p + j) = *(p + j + 1);
- *(p + j + 1) = temp;
- }
- }
- }
- return 0;
- }
复制代码 |
|