BC108 矩阵交换

描述

KiKi有一个矩阵,他想知道经过k次行变换或列变换后得到的矩阵。请编程帮他解答。

输入描述

第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)

从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

接下来一行输入k,表示要执行k次操作(1≤k≤5)。接下来有k行,每行包括一个字符t和两个数a和b,中间用空格格分隔,t代表需要执行的操作,当t为字符'r'时代表进行行变换,当t为字符'c'时代表进行列变换,a和b为需要互换的行或列(1≤a≤b≤n≤10,1≤a≤b≤m≤10)。

提示:当t为别的字符时不需要处理

输出描述

输出n行m列,为矩阵交换后的结果。每个数后面有一个空格。

思路:当输入一行操作时,处理一行。

易错点:读入操作时,因为第一个读入的是字符c%,所以需要消耗%d后的所有后继空白符,然后读一个char,因此,scanf(" %c %d %d",&t,&a,&b)中c%前需要加一个空格或者每次加上getchar(麻烦)。

复制代码
#include <stdio.h>

int main() 
{
    int n=0;
    int m=0;
    scanf("%d %d",&n,&m);

    int i=0;
    int j=0;
    int arr[10][10]={0};
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            scanf("%d",&arr[i][j]);
        }
    }

    int k=0;
    scanf("%d",&k);

    char t=0;
    int a=0;
    int b=0;

    for(i=0;i<k;i++)
    {
        //对于每一行                 //只有读入第一个字符是c%时才需要考虑
        scanf(" %c %d %d",&t,&a,&b);//消耗%d后的所有后继空白符,然后读一个char
        if(t == 'c')//交换列
        {
            for(j=0;j<n;j++)
            {
                int tmp =arr[j][a-1];
                arr[j][a-1]=arr[j][b-1];
                arr[j][b-1]=tmp;
            }
        }
        else if(t == 'r')//交换行
        {
            for(j=0;j<m;j++)
            {
                int tmp= arr[a-1][j];
                arr[a-1][j]=arr[b-1][j];
                arr[b-1][j] =tmp;
            }
        }


    }
    //打印
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    
    return 0;
}
相关推荐
金融小师妹1 小时前
应用BERT-GCN跨模态情绪分析:贸易缓和与金价波动的AI归因
大数据·人工智能·算法
广州智造1 小时前
OptiStruct实例:3D实体转子分析
数据库·人工智能·算法·机器学习·数学建模·3d·性能优化
belldeep3 小时前
如何阅读、学习 Tcc (Tiny C Compiler) 源代码?如何解析 Tcc 源代码?
c语言·开发语言
Trent19853 小时前
影楼精修-肤色统一算法解析
图像处理·人工智能·算法·计算机视觉
feifeigo1234 小时前
高光谱遥感图像处理之数据分类的fcm算法
图像处理·算法·分类
北上ing4 小时前
算法练习:19.JZ29 顺时针打印矩阵
算法·leetcode·矩阵
.格子衫.6 小时前
真题卷001——算法备赛
算法
XiaoyaoCarter6 小时前
每日一道leetcode
c++·算法·leetcode·职场和发展·二分查找·深度优先·前缀树
Hygge-star6 小时前
【数据结构】二分查找5.12
java·数据结构·程序人生·算法·学习方法
June`7 小时前
专题二:二叉树的深度搜索(二叉树剪枝)
c++·算法·深度优先·剪枝