杂化轨道VSEPR 2021-07-16 21:12 采纳率: 93.3%
浏览 21
已结题

为什么我无法实现调用函数来转置?输出的仍然是原来的矩阵


#include<stdio.h>
int array[3][3];
int main()
{
    int i,j;
    void zhuanzhi(int array[][3]);
    printf("输入你要转置的矩阵\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            scanf("%d",&array[i][j]);
        }
    }
    printf("您输入的矩阵为\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        
            printf("%3d",array[i][j]);
            printf("\n");
    }
    printf("转置后的矩阵为\n");
    zhuanzhi(array);
    for(i=0;i<3;i++)
        {for(j=0;j<3;j++)
            printf("%3d",array[i][j]);
            printf("\n");
        }
}
void zhuanzhi(int array[][3])
{
    int i,j,t;
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            t=array[i][j];
            array[i][j]=array[j][i];
            array[j][i]=t;
        }
    }
   
}
  • 写回答

2条回答 默认 最新

  • 浪客 2021-07-16 21:49
    关注
    void zhuanzhi(int array[][3])
    {
        int i,j,t;
        for(i=0;i<3;i++)
        {
            for(j=i;j<3;j++)  //这里从i开始换,不然换过来后又换回去了
            {
                t=array[i][j];
                array[i][j]=array[j][i];
                array[j][i]=t;
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月2日
  • 已采纳回答 7月25日
  • 创建了问题 7月16日