游客 Signup | Login
中文 | En

2249 - a1008

编程:将一个二维数组a的行和列的元素互换(行列转置),存到另一个二维数组b中。

输入n代表随后输入一个n*n的二维数组(n小于等于20)


Input

Output

Examples

Input

2
1 2
3 4

Output

1 3
2 4

Solution C

#include<stdio.h>
int main()
{

    int n,i,j;
    while(scanf("%d",&n)!=EOF)
    {
        int a[n][n],b[n][n];
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                b[i][j]=a[j][i];
                for(i=0;i<n;i++)
            {
                printf("%d",b[i][0]);
                for(j=1;j<n;j++)
                {
                    printf(" %d",b[i][j]);
                }
                printf("\n");
            }
    }
}

Solution C++

#include<iostream>
#include<cstdio>
#include<iostream>
#include<cmath>

using namespace std;

int main(){
    int a[25][25],b[25][25];
    int n;
    while(cin>>n){
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
                cin>>a[i][j];
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
                b[i][j] = a[j][i];
        for(int i=0;i<n;i++){
            cout<<b[i][0];
            for(int j=1;j<n;j++)
                cout<<' '<<b[i][j];
            cout<<endl;
        }
    }
    return 0;
}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题