gpt4 book ai didi

c - 没有正确显示矩阵的转置?

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:59 26 4
gpt4 key购买 nike

它适用于二次矩阵(2x2 或 3x3),但对于 2x3 或 3x2 它无法正确显示!!

#include <stdio.h>

int main()
{
int i,j,k,c1,c2,l1,l2;
int m1[10][10],m2[10][10],transposta[10][10],multiplicacao[10][10];

printf("\nDigite o numero de linhas e colunas na primeira matriz\n");
scanf("%d%d",&l1,&c1);
printf("\nDigite os elementos da matriz:\n");
for(i=0;i<l1;i++)
{
for(j=0;j<c1;j++)
{
scanf("%d",&m1[i][j]);
}
}
for(i=0;i<l1;i++)
{
for(j=0;j<c1;j++)
{
transposta[j][i] = m1[i][j];
}
}
printf("\nA matriz transposta e:\n");
for(i=0;i<l1;i++)
{
for(j=0;j<c1;j++)
printf("%d\t",transposta[i][j]);
printf("\n");
}

如果我将元素 {1,2,3,4,5,6} 放入 2x3 矩阵中,它会显示如下:

1 4 1

2 5 0

但是正确的方法是:

1 4

2 5

3 6

代码有什么问题以及为什么当行数与列数不同时它不起作用

最佳答案

您的代码中的一切都是正确的,只需更改

for(i=0;i<l1;i++)
{
for(j=0;j<c1;j++)
printf("%d\t",transposta[i][j]);
printf("\n");
}

通过

for(i=0;i<c1;i++)
{
for(j=0;j<l1;j++)
printf("%d\t",transposta[i][j]);
printf("\n");
}

为了打印目的,你必须照顾好 c1 和 l1

关于c - 没有正确显示矩阵的转置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46148137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com