1568 - 矩阵转置0

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB


输入一个N*N的矩阵,将其转置后输出。要求:不得使用任何数组(就地逆置)。

<br />

题目输入


输入的第一行包括一个整数N,(1&lt;=N&lt;=100),代表矩阵的维数。<br />

接下来的N行每行有N个整数,分别代表矩阵的元素。

<br />

题目输出


可能有多组测试数据,对于每组数据,将输入的矩阵转置后输出。

<br />

输入/输出样例

输入格式

1
68 
3
1 70 25 
79 59 63 
65 6 46 

输出格式

68
1 79 65
70 59 6
25 63 46

C语言解答

int main(int argc, char* argv[])
{
int n,a[101][101],i,j;
while(~scanf("%d",&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-1;j++)
printf("%d ",a[j][i]);
printf("%d\n",a[j][i]);
}
}
	return 0;
}

C++解答

#include <stdio.h>
int main()
{    
	int n,a[101][101],i,j;
	scanf("%d",&n);
	while(n!=0)
	{
		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-1;j++)
				printf("%d ",a[j][i]);
			printf("%d\n",a[n-1][i]);
		}
		n=0;
		scanf("%d",&n);
	}
	return 0;
}

Java解答

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while(in.hasNextInt()){
            int x = in.nextInt();
            int[][] a = new int[x][x];
            for(int i=0;i<x;i++){
                for(int j=0;j<x;j++){
                    a[i][j] = in.nextInt();
                }
            }
            for(int i=0;i<x;i++){
                for(int j=0;j<x;j++){
                    if(j==x-1)
                    System.out.print(a[j][i]);
                    else
                    System.out.print(a[j][i]+" ");
                }
                System.out.println();
            }
        }
    }
}