鱼C论坛

 找回密码
 立即注册
查看: 1676|回复: 4

[已解决]将三行四列的矩阵,转置输出

[复制链接]
发表于 2020-2-19 19:26:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入一个三行四列的矩阵,专置后输出,代码如下,为什么我的最后一行有乱码,请高人指教,哪里错了
#include <stdio.h>
void main ()
{
        int i,j,a[3][4],b[4][3];
        for(i=0;i<3;i++)
        {
                scanf("%d%d%d%d",&a[i][0],&a[i][1],&a[i][1],&a[i][2]);
                
        }
        for(i=0;i<3;i++)
        {        for(j=0;j<4;j++)
        {
                b[j][i]=a[i][j];
        }
        }
        for(i=0;i<4;i++)
        {        for(j=0;j<3;j++)
                        printf("%4d ",b[i][j]);
        printf("\n");

        }        
}
5.PNG
最佳答案
2020-2-19 21:12:06
本帖最后由 4goodworld 于 2020-2-19 21:25 编辑

我突然发现

你好像写错了
应该是
scanf("%d %d %d %d", &a[i][0], &a[i][1], &a[i][2], &a[i][3]);
才对
建议写成这样子,更清晰
int test6(){


                int i, j, a[3][4], b[4][3];
                for (i = 0; i < 3; i++)
                {
                        for (j = 0; j < 4; j++)
                        {
                                scanf("%d", &a[i][j]);
                        }
                        //scanf("%d %d %d %d", &a[i][0], &a[i][1], &a[i][1], &a[i][2]);

                }
                for (i = 0; i < 3; i++)
                {
                        for (j = 0; j < 4; j++)
                        {
                                b[j][i] = a[i][j];
                                
                        }
                }
                for (i = 0; i < 4; i++)
                {
                        for (j = 0; j < 3; j++) {
                                printf("%4d", b[i][j]);
                        }
                        printf("\n");

                }

        return 0;
}

int main() {

        test6();
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-19 19:31:33 | 显示全部楼层
你这代码写的也太乱了点。。。。。
缩进根本判断不清楚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-19 20:14:36 | 显示全部楼层
输出的四行三列
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-19 21:12:06 | 显示全部楼层    本楼为最佳答案   
本帖最后由 4goodworld 于 2020-2-19 21:25 编辑

我突然发现

你好像写错了
应该是
scanf("%d %d %d %d", &a[i][0], &a[i][1], &a[i][2], &a[i][3]);
才对
建议写成这样子,更清晰
int test6(){


                int i, j, a[3][4], b[4][3];
                for (i = 0; i < 3; i++)
                {
                        for (j = 0; j < 4; j++)
                        {
                                scanf("%d", &a[i][j]);
                        }
                        //scanf("%d %d %d %d", &a[i][0], &a[i][1], &a[i][1], &a[i][2]);

                }
                for (i = 0; i < 3; i++)
                {
                        for (j = 0; j < 4; j++)
                        {
                                b[j][i] = a[i][j];
                                
                        }
                }
                for (i = 0; i < 4; i++)
                {
                        for (j = 0; j < 3; j++) {
                                printf("%4d", b[i][j]);
                        }
                        printf("\n");

                }

        return 0;
}

int main() {

        test6();
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-19 21:41:47 | 显示全部楼层
是scanf那里错了
#include <stdio.h>
void main ()
{
    int i,j,a[3][4],b[4][3];
    for(i=0; i<3; i++)
    {
        scanf("%d%d%d%d",&a[i][0],&a[i][1],&a[i][2],&a[i][3]);

    }



    for(i=0; i<3; i++)
    {
        for(j=0; j<4; j++)
        {
            b[j][i]=a[i][j];
        }
    }



    for(i=0; i<4; i++)
    {
        for(j=0; j<3; j++)
        {
             printf("%-4d ",b[i][j]);
        }
        printf("\n");
    }
}

想二维数组用二重循环比较好,稍微简洁一些
#include <stdio.h>
void main ()
{
    int a[3][4];
    int i,j;

    for(i=0; i<3; i++)
    {
        for(j=0; j<4; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }

    for(i=0; i<3; i++)
    {
        for(j=0; j<4; j++)
        {
             printf("%-2d",a[i][j]);
        }
        printf("\n");
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 02:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表