Bom dia/tarde/noite galera, necessito fazer o seguinte exercício: Faça um programa, utilizando duas matrizes, que solicite a entrada de todos os elementos de uma matriz 3x2, onde será calculada a sua matriz transposta (2x3). A matriz transposta é a troca da linha pela coluna, ou seja, a linha 1 da matriz original será a coluna 1 da matriz transposta. Posteriormente, armazene na segunda matriz a matriz transposta, além de exibir a mesma para o usuário, conforme layout abaixo:
O layout é bem simples:
Matriz Original é:
xxxxx
xxxx
Matriz Transposta é:
xxxx
xxx
Bom. eu tinha feito esse exercício criando um parâmetro e utilizando o comando "rand" que o próprio programa gerava os valores para mim. Só que pelo que entendi, não é para usar parâmetro e eu necessito pedir para o usuário os valores que ele quer digitar. Vou deixar abaixo o código que fiz utilizando rand e parâmetro só para comparação caso seja necessário:
//
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
void inverterMatriz(int matriz[10][10])
{
int mat1[2][3],i,j;
printf("\nMatriz 2x3 - Transposta\n");
for(i=0;i<2;i++)
{
printf("\n");
for(j=0;j<3;j++)
{
mat1[i][j]=matriz[j][i];
printf(" %d ",mat1[i][j]);
}
}
}
int main ()
{
setlocale(LC_ALL, "Portuguese");
int m[2[3],i,j;
printf("Matriz 2x3\n");
for(i = 0; i < 2; i++)
{
printf("\n");
for(j = 0; j < 3; j++)
{
m[i][j] = rand()%50;
printf(" %d ", m[i][j]);
}
}
printf("\n");
inverterMatriz(m);
return 0;
}
//
Como esse não serviu, fui tentar fazer sem utilizar parâmetro e solicitando o usuário os valores. Ta bem parecido porém não funciona, alguém tem alguma dica ? Deixarei o código abaixo:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main ()
{
setlocale(LC_ALL, "Portuguese");
int m[2][3], m2[2][3];
int i, j;
for(i = 0; i < 2; i++)
{
printf("\n");
for(j = 0; j < 3; j++)
{
printf("Digite o valor da posição %d %d da matriz: ", i, j);
scanf("%d", &m[i][j]);
}
}
printf("A matriz original é: \n%d", m[i][j] );
printf("\nA matriz transposta é: \n");
for(i=0;i<2;i++)
{
printf("\n");
for(j=0;j<3;j++)
{
m2[i][j] = m[j][i];
printf(" %d ",m2[i][j]);
}
printf("\n");
return 0;
}
}