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

通过次数

0

提交次数

0

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

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

题目输入

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

题目输出

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

输入/输出样例

输入格式

1 2 3
4 5 6
7 8 9

输出格式

1 4 7
2 5 8
3 6 9

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");
    }
}