题解 | #矩阵交换#

矩阵交换

https://www.nowcoder.com/practice/ec44d4ff8c794b2f9205bdddbde96817

#include<stdio.h>
void swap_col_or_row(int arr[][10], char r, int a, int b,int n,int m);
void array_print(int arr[][10], int n, int m);
int main() {
    int i = 0,j=0;
    int m = 0, n = 0;
    int k = 0, a = 0, b = 0;
    char t = '0'; //控制变量
    int arr[10][10] = {0};
    scanf("%d %d", &n, &m); //输入m,n,第一行
    //输入的第二行到n+1行
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            scanf("%d", &arr[i][j]);
        }
    }
    //输入K行,表示要执行k次操作
    scanf("%d", &k);
    for (i = 0; i < k; i++) {
        //输入控制操作
        getchar();//清除回车,防止读入\n
        scanf("%c %d %d", &t, &a, &b);
        //操作
        swap_col_or_row(arr, t, a, b,n,m);

    }
    //打印
    array_print(arr, n, m);
    return 0;
}
void swap_col_or_row(int arr[][10], char t, int a, int b,int n,int m) {
    int i = 0,temp = 0;
    //判断r
    if ('r' == t) {
    //交换行
    for(i=0;i<m;i++)
    {
        temp = arr[a-1][i];
        arr[a-1][i] = arr[b-1][i];
        arr[b-1][i] = temp;
    }
    } else if ('c' == t) {
    //交换列
       for(i=0;i<n;i++)
    {
        temp = arr[i][a-1];
        arr[i][a-1] = arr[i][b-1];
        arr[i][b-1] = temp;
    }
    } 
}
void array_print(int arr[][10], int n, int m) {
    int i = 0, j = 0;
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
}

全部评论

相关推荐

2025-12-05 18:09
已编辑
广东药科大学 后端工程师
点赞 评论 收藏
分享
ros275229:社团删了吧,cf因该1200才勉强入门吧,也删了,你可以写算法刷了多少道,都比这个好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务