这道题就是给出行数和列数,并输入一些数,将其按照列的数值输出行,按行的数值输出列,就比如说,这个数据是2行3列,输出的时候就是3行2列
然而如果只是单纯将i的范围和j的范围变一下输出呢,就像这样
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,i,j,a[105][105];
cin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>a[i][j];
cout<<m<<" "<<n<<endl;
for(i=1;i<=m;i++){
for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
ta的输出结果是这样的
很明显这是错误的,而且输出的数值也少了
所以我们输入的时候是i行套j列
输出就要用j行套i列,同时,改变j和i的范围,ta的难点就在这里,上代码!
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,i,j,a[105][105];
cin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>a[i][j];
cout<<m<<" "<<n<<endl;
for(j=1;j<=m;j++){
for(i=1;i<=n;i++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
试题链接:https://vjudge.net/contest/390063#problem/B