澄与明 2022-04-29 09:14 采纳率: 97.6%
浏览 53
已结题

问一下如何编写这个程序,并简单叙述一下原理?

键盘输入4行4列的二维数组a,编写自定义函数矩阵进行转置,并在主函数中输出该数组。

  • 写回答

5条回答 默认 最新

  • 关注

    双层for循环进行行列元素互换即可,注意内层for循环j 要小于外层for循环的i ,否则会导致已经交换的数据又被交换回去的情况。

    img

    代码如下:

    #include <stdio.h>
    int main()
    {
        int a[4][4], i, j, t;
        //读取数据
        for (i = 0; i < 4; i++)
        {
            for (j = 0; j < 4; j++)
                scanf("%d", &a[i][j]);
        }
        //行列互换
        for (i = 0; i < 4; i++)
        {
            for (j = 0; j < i; j++)
            {
                t = a[i][j];
                a[i][j] = a[j][i];
                a[j][i] = t;
            }
        }
        //输出
        for (i = 0; i < 4; i++)
        {
            for (j = 0; j < 4; j++)
                printf("%d  ", a[i][j]);
            printf("\n");
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月7日
  • 已采纳回答 4月29日
  • 创建了问题 4月29日