交换二维数组第一行和第三行的位置

交换二维数组第一行和第三行的位置
交换二维数组第一行和第三行的位置
交换二维数组第一行和第三行的位置
25 36 78 93
12 26 88 93
75 18 22 32
56 44 36 58

交换第一行和第三行的位置是不是就是交换第一行和第三行相应列的值?如果是的,可以遍历二维数组的第一行,然后将它的每一列与第三行相应的列的值交换即可,代码如下:


#include <stdio.h>
#define ROWS 4
#define COLS 4

void  exchangeFirstAndThirdRow(int arr[][COLS]){
    
    int i,temp;
    //遍历第1行的所有列,将它每列的值与第三行相应的列的值交换 
    for(i=0;i<COLS;i++){  
        //交换第一行和第三行 当前列的值 
        temp = arr[0][i]; 
        arr[0][i] = arr[2][i];
        arr[2][i] = temp;
        
    }
    
}

int main(void){
    
    int arr[ROWS][COLS];
    
    //从输入整数存入二维数组 
    for(int i=0;i<ROWS;i++){
        for(int j=0;j<COLS;j++){
            scanf("%d",&arr[i][j]);
        }
    }
    
    //打印二维数组原来的值 
    printf("二维数组原来的值为:\n");
    for(int i=0;i<ROWS;i++){
        for(int j=0;j<COLS;j++){
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    
    //交换二维数组第一行和第三行相应列的值 
    exchangeFirstAndThirdRow(arr);
    
    //打印交换后的二维数组的值 
    printf("二维数组交换第一行和第三行后的值为:\n");
    for(int i=0;i<ROWS;i++){
        for(int j=0;j<COLS;j++){
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    
    
} 

img


#include<stdio.h>
#define ROW 4
#define COL  4
int main()
{
    int i=0,j=0;
    int arr[ROW][COL];
    for(i=0;i<ROW;i++)//从键盘读取2维数组
    {
        for(j=0;j<COL;j++)
        {
            scanf("%d",&arr[i][j]);
        }
    }
    for(i=0;i<COL;i++)//交换第三行与第一行
    {
       int tmp=arr[2][i];
       arr[2][i]=arr[0][i];
       arr[0][i]=tmp;
    }
    for(i=0;i<ROW;i++)//打印这个二维数组
    {
        for(j=0;j<COL;j++)
        {
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}