Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Matriz


AlexandreF

Pergunta

Bom dia amigos, tenho o seguinte problema:

Fazer a leitura de 2 matrizes de dimensões [2][2] e fazer a multiplicação entre elas. Mostrar as Matrizes inseridas e o resultado.

Fiz o seguinte código e gostaria de saber o que está errado. Ele não retorna nada.

Agradeço desde já!!

#include<iostream.h>

/*MOSTRA A MATRIZ*/
void mostra_matriz(int matriz[], int elementos){
    int i, j;
    for (i=0; i > elementos; i++){
        cout << endl;
        for (j=0; j>elementos; j++){
            cout << matriz[i,j];
        }
    }
}


void main(){

int mat1[2,2];
int mat2[2,2];
int mat3[2,2];
int i, j;

/* INSERE OS DADOS NA MATRIZ 1*/
for (i=0; i>2; i++){
    for (j=0; j>2; j++){
        cout << "\n Insira um numero na matriz1 ";
        cin >> mat1[i,j];
    }
}
mostra_matriz(mat1,4);

/* INSERE OS DADOS NA MATRIZ 2*/
for (i=0; i>2; i++){
    for (j=0; j>2; j++){
        cout << "\n Insira um numero na matriz2 ";
        cin >> mat2[i,j];
        cout << endl;
    }
}
mostra_matriz(mat2,4);

/* MULTIPLICAÇÃO ENTRE AS MATRIZES*/
for (i=0; i>2; i++){
    for (j=0; j>2; j++){
        mat3[i,j] = mat1[i,j]*mat2[i,j];
    }
}
mostra_matriz(mat3,4);
}

Editado por AlexandreF
Adicionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Seu código apresenta vários erros (aqui não chegou nem a compilar). Você está utilizando o Dev-Cpp? Se sim, recomendo fortemente que procure outra IDE.

O principal problema do seu código é porque estava utilizando matriz[i,j], enquanto o correto é matriz[j].

Além disso, como não é possível passar uma matriz bidimensional de tamanho A x B como parâmetro para uma função sem informar o valor de B, tive que alterar a declaração da função mostra_matriz. Para facilitar, criei duas variáveis globais com o tamanho da sua matriz (size1 e size2).

A sua função main estava sendo declarada como void, o que não é correto (alguns compiladores até aceitam, mas no final o código é gerado como se fosse int)

Também as mensagens que ficassem mais organizadas. Por exemplo, coloquei um espaçamento na função mostra_matriz entre cada coluna, acrescentei uma mensagem informando a posição atual ao preencher os valores e mostrei as matrizes somente após o usuário preencher todas.

Segue o código corrigido:

#include<iostream>

using namespace std;

//Tamanho da matriz (size1 x size2)
const int
    size1=2,
    size2=3;

/*MOSTRA A MATRIZ*/
void mostra_matriz(int matriz[size1][size2]){
    int i, j;
    for (i=0; i < size1; i++){
        cout << endl;
        for (j=0; j < size2; j++){
            if(j!=0) cout << " - ";
            cout << matriz[i][j];
        }
    }
}


int main(){

    int mat1[size1][size2];
    int mat2[size1][size2];
    int mat3[size1][size2];
    int i, j;

    /* INSERE OS DADOS NA MATRIZ 1*/
    for (i=0; i<size1; i++){
        for (j=0; j<size2; j++){
            cout << "\n Insira um numero na matriz1 (" << i << "x" << j << ")";
            cin >> mat1[i][j];
        }
    }
    /* INSERE OS DADOS NA MATRIZ 2*/
    for (i=0; i<size1; i++){
        for (j=0; j<size2; j++){
            cout << "\n Insira um numero na matriz2 (" << i << "x" << j << ")";
            cin >> mat2[i][j];
        }
    }

    /* MULTIPLICAÇÃO ENTRE AS MATRIZES*/
    for (i=0; i<size1; i++){
        for (j=0; j<size2; j++){
            mat3[i][j] = mat1[i][j]*mat2[i][j];
        }
    }
    //Mostra as matrizes
    cout << endl << "****MATRIZ 1****";
    mostra_matriz(mat1);
    cout << endl << "****MATRIZ 2****";
    mostra_matriz(mat2);
    cout << endl << "****MATRIZ 3****";
    mostra_matriz(mat3);
    //Retorno
    return 0;
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...