题目补充: (1≤n≤10,1≤m≤10) 从2到n+1行,每行输入m个整数,用空格分隔,共输入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列,为矩阵交换后的结果。元素间不用空格,每组数据换行即可。(多组数据)
如:输入:2 2
1 2
3 4
1
r 1 2
2 2
1 3
6 8
2
c 1 2
t 1 2
输出:
34
12
31
86
#include<iostream>
using namespace std;
int main()
{
int n, m;
int p[10][10];
while (cin>>n>>m)
{
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
cin >> p[i][j];
}
}
int k;
cin >> k;
if (k >= 1 && k <= 5)
{
for (int z=1;z<= k;z++)
{
char t;
int w, e;
cin >> t >> w >> e;
if (t == 'r')
{
if (w <= e && e <= n)
{
for (int i = 0; i < m; i++)
{
int temp=p[w - 1][i];
p[w - 1][i]=p[e - 1][i];
p[e - 1][i]=temp;
}
}
}
if (t == 'c')
{
if (w <= e && e <= m)
{
for (int i=0;i<n;i++)
{
int temp = p[i][w - 1];
p[i][w - 1] = p[i][e - 1];
p[i][e - 1] = temp;
}
}
}
if (t == 'r' || t == 'c')
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cout << p[i][j];
}
cout << endl;
}
}
}
}
}
}
我自己测试了很多次感觉都是对的,但是去oj平台上显示却是错误答案
我只学到数组