大一学生的C语言问题,请大神指点:在主函数中定义一个二维数组,并输入一个矩阵在子函数里将这个矩阵转

大一学生的C语言问题,请大神指点:在主函数中定义一个二维数组,并输入一个矩阵在子函数里将这个矩阵转置并输出转置后的矩阵。

以一个3*3的矩阵为例说明矩阵转置


#include <stdio.h>

int main()

{

    int a[3][3];

    int temp,i,j;


    //输入

    printf("请输入一个3*3的矩阵,回车键换行:\n");

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

    {

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

        {

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

        }

        getchar();

    }

    //转置

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

    {

        for(j=i+1;j<3;j++)

        {

            temp=a[i][j];

            a[i][j]=a[j][i];

            a[j][i]=temp;

        }

    }

    //输出转置后的数组

    printf("\n转置后的矩阵为:\n");

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

    {

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

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

        printf("\n");

    }

}

运行结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-24
数据输入后,设置循环,不断进行a[i][j]=a[j][i]操作就行了,不过不要对一个数进行重复操作,两次转置就回来了~~本回答被提问者采纳
第2个回答  2014-12-03

参考代码如下,希望能帮到您.

第3个回答  2014-12-03
转置实际的意思开始是横着输入你现在竖着输出就可以了!本回答被网友采纳
第4个回答  2017-09-24
#include#include#defineN4intconvertmatrix(intm[N][N]){inti,j,temp;for(i=0;i
相似回答