网站一般在哪建设,武进网站建设效果,深圳办公室设计,网页视频下载器破解版描述
KiKi有一个矩阵#xff0c;他想知道经过k次行变换或列变换后得到的矩阵。请编程帮他解答。
输入描述 第一行包含两个整数n和m#xff0c;表示一个矩阵包含n行m列#xff0c;用空格分隔。 (1≤n≤10,1≤m≤10) 从2到n1行#xff0c;每行输入m个整数#xff08;范围-…描述
KiKi有一个矩阵他想知道经过k次行变换或列变换后得到的矩阵。请编程帮他解答。
输入描述 第一行包含两个整数n和m表示一个矩阵包含n行m列用空格分隔。 (1≤n≤10,1≤m≤10) 从2到n1行每行输入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≤101≤a≤b≤m≤10。 提示当t为别的字符时不需要处理 输出描述 输出n行m列为矩阵交换后的结果。每个数后面有一个空格。 思路当输入一行操作时处理一行。 易错点读入操作时因为第一个读入的是字符c%,所以需要消耗%d后的所有后继空白符然后读一个char因此scanf( %c %d %d,t,a,b)中c%前需要加一个空格或者每次加上getchar麻烦。 #include stdio.hint main()
{int n0;int m0;scanf(%d %d,n,m);int i0;int j0;int arr[10][10]{0};for(i0;in;i){for(j0;jm;j){scanf(%d,arr[i][j]);}}int k0;scanf(%d,k);char t0;int a0;int b0;for(i0;ik;i){//对于每一行 //只有读入第一个字符是c%时才需要考虑scanf( %c %d %d,t,a,b);//消耗%d后的所有后继空白符然后读一个charif(t c)//交换列{for(j0;jn;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(j0;jm;j){int tmp arr[a-1][j];arr[a-1][j]arr[b-1][j];arr[b-1][j] tmp;}}}//打印for(i0;in;i){for(j0;jm;j){printf(%d ,arr[i][j]);}printf(\n);}return 0;
}