数组 B

 

 这道题就是给出行数和列数,并输入一些数,将其按照列的数值输出行,按行的数值输出列,就比如说,这个数据是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

 

posted @ 2020-08-21 11:22  ssdaeda  阅读(89)  评论(1编辑  收藏  举报