您的位置:首页 > 其它

YTU:写一个函数,使给定的一个二维数组(3×3)转置,即行列互换

2016-03-10 19:03 621 查看

Description

写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。

Input

一个3x3的矩阵

Output

转置后的矩阵

Sample Input

1 2 3
4 5 6
7 8 9

Sample Output

1 4 7
2 5 8
3 6 9

HINT

  主函数已给定如下,提交时不需要包含下述主函数

/* C代码 */

int main()

{

  int a[3][3];

  int i,j;

  for(i=0; i<3; i++)

     for(j=0; j<3; j++)

       scanf("%d",&a[i][j]);

  zhuangzhi(a);

  for(i=0; i<3; i++)

  {

     for(j=0; j<3; j++)

        printf("%d ",a[i][j]);

     printf("\n");

  }

   return 0;

}

/* C++代码 */

int main()

{

  int a[3][3];

  int i,j;

  for(i=0; i<3; i++)

    for(j=0; j<3; j++)

       cin>>a[i][j];

  zhuangzhi(a);

  for(i=0; i<3; i++)

  {

    for(j=0; j<3; j++)

      cout<<a[i][j]<<" ";

    cout<<endl;

  }

  return 0;

}

比较简单的指针题

下面是代码:

void *zhuangzhi(int matrix[3][3])

{

    for(int i=0;i<3;i++)

    for(int j=0;j<i;j++)//转置矩阵就是把a[i][j]变为a[j][i],j<i可以减少步骤 比j<3要省时间

    {

        int t=matrix[i][j];

        matrix[i][j]=matrix[j][i];

        matrix[j][i]=t;

    }

}

int main()

{

    int a[3][3];

    int i,j;

    for(i=0; i<3; i++)

        for(j=0; j<3; j++)

            scanf("%d",&a[i][j]);

    zhuangzhi(a);

    for(i=0; i<3; i++)

    {

        for(j=0; j<3; j++)

            printf("%d ",a[i][j]);

        printf("\n");

    }

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: