中将行列都进行颠倒"/>
C语言中将行列都进行颠倒
有啥问题,评论区见
在这个代码中,我们首先定义了一个3x3的数组arr,并在main()函数中打印出它的原始值。
然后,我们调用了名为reverse()的函数,它将二维数组的每一行和每一列颠倒顺序。
具体来说,该函数使用一个temp变量,将每一行中的元素与相应的末尾元素进行交换。
然后,函数执行类似的步骤,将每一列中的元素和相应的底部元素进行交换。
最后,我们在main()函数中打印出颠倒后的数组。
比如原始数组是:
```
1 2 3
4 5 6
7 8 9
```
经过reverse()函数处理后,它变成了:
```
9 8 7
6 5 4
3 2 1
```
这就是我们想要的每一行和每一列顺序颠倒的结果。
你可以尝试修改ROW和COL的值来测试不同大小的数组。
/* 这个代码为只颠倒每一行中的数据#include <stdio.h>#define ROW 3
#define COL 4int main()
{int arr[ROW][COL] = {{1, 2, 3, 4},{4, 5, 6, 7},{7, 8, 9, 10}};int temp;int i = 0;int j = 0; for (i = 0; i < ROW; i++) // i表示的每一行 {for ( j = 0; j < COL / 2; j++) // j表示的每一列,先在第一行进行操作,倒置就是相当于列的交换 {temp = arr[i][j];arr[i][j] = arr[i][COL - 1 - j]; // COL可以为奇数,也可以为偶数,为偶数时会比为小 1 的奇数多交换一次 arr[i][COL - 1 - j] = temp;}}printf("颠倒后的数组:\n");for (i = 0; i < ROW; i++){for (j = 0; j < COL; j++){printf("%d ", arr[i][j]);}printf("\n");}return 0;
}*/// 下面是一个简单的C语言代码,用于将一个二维数组里面的数据每一行和每一列的顺序颠倒过来://这个代码先颠倒每一行中的数据,然后再颠倒每一列中的数据
#include <stdio.h>#define ROW 3
#define COL 3void reverse(int arr[ROW][COL])
{int temp;// 颠倒每一行int i = 0,j=0;for (i = 0; i < ROW; i++){for (j = 0; j < COL / 2; j++){temp = arr[i][j];arr[i][j] = arr[i][COL - 1 - j];arr[i][COL - 1 - j] = temp;}}// 颠倒每一列for (i = 0; i < COL; i++) // 思路和改变行的思绪一样,先换第一列,再换第二列{for (j = 0; j < ROW / 2; j++){temp = arr[j][i];arr[j][i] = arr[ROW - 1 - j][i];arr[ROW - 1 - j][i] = temp;}}
}int main()
{int arr[ROW][COL] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};printf("Before:\n");int i = 0,j = 0;// 打印原始数组for (i = 0; i < ROW; i++){for (j = 0; j < COL; j++){printf("%d ", arr[i][j]);}printf("\n");}// 将数组的行和列颠倒reverse(arr);printf("\nAfter:\n");// 打印颠倒后的数组for (i = 0; i < ROW; i++){for (j = 0; j < COL; j++){printf("%d ", arr[i][j]);}printf("\n");}return 0;
}
更多推荐
C语言中将行列都进行颠倒
发布评论