首页 > 试题广场 >

矩阵交换

[编程题]矩阵交换
  • 热度指数:25841 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

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列,为矩阵交换后的结果。每个数后面有一个空格。
示例1

输入

2 2
1 2
3 4
1
r 1 2

输出

3 4 
1 2 
示例2

输入

2 2
1 3
6 8
2
c 1 2
t 1 2

输出

3 1 
8 6 

说明

当t为别的字符时不需要处理,所以只交换了原矩阵的第1列和第2列。 
头像 ZiRuio
发表于 2021-09-29 10:43:45
#include<stdio.h> int main(void){     int m=0,n=0;     scanf("%d %d",&m,&am 展开全文
头像 西西西西西西西
发表于 2021-09-26 15:09:04
#include <stdio.h> int main() { int n = 0; int m = 0; int arr[10][10] = { 0 }; scanf("%d %d", &n, &m); fo 展开全文
头像 牛客466803378号
发表于 2023-07-27 16:42:28
需要注意的是,再输入 字符t 的值时,有一个换行符,需要在 %c前面添加一个空格 int main() { int n,m; scanf("%d %d",&n,&m); int arr[n][m]; for(int i=0;i< 展开全文
头像 让我想个名字
发表于 2022-04-27 16:19:09
思路* 按照输入读入,注意r c 读入时有个空格,然后要用getchar吃掉空格,然后正常读入。行列交换的意思是输入的行数或者列数进行交换,然后循环上层是一行或者一列的数的个数。 int main() { int a[15][15],b[15][15]; int i,j,n,m,fl 展开全文
头像 牛客题解官
发表于 2020-06-04 17:43:03
题目描述KiKi有一个矩阵,他想知道经过k次行变换或列变换后得到的矩阵。请编程帮他解答。 输入描述:第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10) 从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个 展开全文
头像 viod
发表于 2021-06-05 18:34:14
题目不难,但是测试用例中存在一组"特殊输入",由于我写的代码开始是用 if(t=='r')...else() 来判断行变换和列变换,因此提交后有一组测试没通过,看了没通过的数据恍然大悟,判断改成 if(t=='r')...if(t=='c') 再次提交就ac了。特殊输入如下截图: 展开全文
头像 饥饿的大魔王
发表于 2023-05-23 21:49:05
#include <stdio.h> /* n , m 代表行和列 k 代表 执行几次操作 t = 'r' 进行行变换 t = 'c' 进行列变换 */ int main() { int tmp = 0; int k = 0; char t; int a, b; int n 展开全文
头像 zzfyupup
发表于 2022-06-22 15:44:37
#include <stdio.h> int main() { int m = 0;//列 int n = 0;//行 int arr[10][10] = { 0 }; int k = 0;//操作的次数 char ch = 0;//代表操作的字 展开全文
头像 饥饿的大魔王
发表于 2023-05-23 22:00:52
#include <stdio.h> /* n , m 代表行和列 k 代表 执行几次操作 t = 'r' 进行行变换 t = 'c' 进行列变换 */ int main() { int tmp = 0; int k = 0; char t; int a, b; int n 展开全文
头像 大厂后端必拿下
发表于 2022-05-27 21:08:50
#include<iostream> using namespace std; int main() {     int n, m, i, j, k, a, b;     int arr[10][10] = 展开全文