写一个函数名为Transp,使得给定的一个2x2的二维数组转置,即行列互换。
要求:
(1)在主函数main中调用子函数Transp实现二维数组转置;
(2)输入输出二维数组在主函数main中实现。
如果只是将2x2的二维数组转置的话, 我认为可以简化为将左下角元素和右上角元素交换就可以了,因为左上角和右下角的元素转置后没变。
代码如下:
参考链接:
#include <stdio.h>
// https://blog.csdn.net/weixin_39791665/article/details/104592286
// https://blog.csdn.net/weixin_41666244/article/details/80615661
void Transp(int arr[][2]){
// 因为只需要转置2x2的数组,而2x2数组的左上角和右下角交换后位置没变
// 所需要交换左下角和右上角的元素即可。
// https://matrix.reshish.com/zh/transpose.php
int temp = arr[0][1];
arr[0][1]=arr[1][0];
arr[1][0]=temp;
}
int main(void){
int arr[2][2]={{1,2,},{3,4}};
printf("2x2数组转置前:\n");
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
printf("%d ",arr[i][j]);
}
printf("\n");
}
Transp(arr);
printf("2x2数组转置后:\n");
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
printf("%d ",arr[i][j]);
}
printf("\n");
}
}