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

来源:互联网 发布:旋风少女网络更新时间 编辑:程序博客网 时间:2024/05/21 10:43

Description

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

Input

一个3x3的矩阵

Output

转置后的矩阵

Sample Input

1 2 34 5 67 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;
}

0 0
原创粉丝点击