Ir ao conteúdo

Posts recomendados

Postado

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;
}
}

 

Postado

O único problema está no parâmetro, que deve ser int matriz [3][2].

 

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]);
        }
    }
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!