1.题目
写一个函数,使得给定的4×4的二维数组x[4][4]转置,即进行列互换。
2.思路
这个题可以使用两层循环来遍历给定的二维数组,然后将每一列的元素与对应行的元素进行交换,从而实现转置操作。具体思路如下:
1. 使用两层循环遍历整个二维数组,外层循环控制列的位置,内层循环遍历列中的所有元素。
2. 对于每一次遍历的元素,先使用一个临时变量 `temp` 保存其值。
3. 然后将这个元素与同一行中的对应位置的元素进行交换,即将 `x[i][j]` 的值赋给 `x[j][i]`,将 `x[j][i]` 的值赋给 `x[i][j]`。
4. 最后将 `temp` 中保存的值赋给新位置的元素,从而完成一次交换操作。
接下来手搓代码qwq
3.代码实现
#include <stdio.h> void transpose(int x[4][4]) { int i, j, temp; for (i = 0; i < 4; i++) { for (j = i + 1; j < 4; j++) { temp = x[i][j]; // 保存当前元素的值 x[i][j] = x[j][i]; // 进行交换操作 x[j][i] = temp; } } for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { printf("%d ",x[i][j]);//打印交换后的数组 } printf("\n");//每打印一行就换行,好看一点 } }