游客 Signup | Login
中文 | En

3080 - 【设计型】第9章: 指针9.7 矩阵置换

小明想编写一个程序,将一个3*3的矩阵转置(转置就是将第n行变成第n列,将第n列变成第n行),你能帮助他完成这个任务么?

Input

输入三行数据,每个数据之间有空格隔开。

Output

输出三行,每行的数据之间有空格隔开

Examples

Input

1 2 3
4 5 6
7 8 9

Output

1 4 7
2 5 8
3 6 9

Solution C

#include<stdio.h>

void Transpose(int (*matrix)[3])
{
    int temp;
    int i, j;
   
    for(i=1;i<3;i++)
    {
        for(j=0;j<i;j++)
        {
            temp = *(*(matrix+j)+i);
            *(*(matrix+j)+i) = *(*(matrix+i)+j);
            *(*(matrix+i)+j) = temp;
        }
    }
}

int main()
{
    int a[3][3];
    for(int i = 0;i<3;i++)
    {
 		for(int j=0;j<3;j++)
   		{
             scanf("%d",&a[i][j]);
 		}
    }
    Transpose(a);
    for(int i = 0;i<3;i++)
    {
 		for(int j=0;j<3;j++)
   		{
             printf("%d",a[i][j]);
             if(j!=2)	printf(" ");
 		}
 	if(i!=2)
	printf("\n");
    }
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题