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

Armazenar uma matriz temporária usando um laço for


Diogo Rupolo

Pergunta

Pessoal estou com o seguinte problema no programa abaixo. Extraio uma submatriz temporária de uma matriz A1, mas quando quero adicioná-la com outra matriz A3, chamando a união da matriz A3 com a Matriz Temporaria de A2 meu código não funciona. O que fazer?

#include <iostream>

using namespace std;

int A1[][2]={{1,0},{2,1},{3,2},{4,2},{5,3}};
int A3[][2]={{12,0},{13,1},{14,2},{15,2},{16,3}};
int Matriz_Temp[][2]={};
int A2[][2]={};


int main ()
{
    //Extraindo uma submatriz da matriz A1
    cout<<" Matriz temporaria: "<<endl;
    for (int i=0;i<3;i++)
{
    for (int j=0;j<2;j++)
    {
        Matriz_Temp[i][j]=A1[i][j];
        cout<<Matriz_Temp[i][j]<<" ";
    }
    cout<<endl;
}

cout <<" Matriz = Matriz A3: "<<endl;
 for (int i=0;i<5;i++)
{
    for (int j=0;j<2;j++)
    {
       A2[i][j]=A3[i][j];
       A2[i+3][j]=Matriz_Temp[i][j]; //Matriz A2 na posição i+3 = matriz tempórária?
        cout<<A2[i][j]<<" ";
    }
    cout<<endl;
}
//Queria imprimir aqui Matriz A2 juntamente com a matriz temporária
cout<<" Matriz A2: "<<endl;
for (int i=0;i<8;i++)
{
    for (int j=0;j<2;j++)
    {
        cout<<A2[i][j]<<" ";
    }
    cout<<endl;
}


}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá!

São dois os seus problemas:

1- Quando você não coloca o tamanho do vetor na sua declaração, a quantidade de itens usados na inicialização é que define o seu tamanho. Assim, as declarações abaixo:

int A1[][2]={{1,0},{2,1},{3,2},{4,2},{5,3}};
int A3[][2]={{12,0},{13,1},{14,2},{15,2},{16,3}};
int Matriz_Temp[][2]={};
int A2[][2]={};
criam vetores com o seguinte tamanho: A1 e A3 tem 5 posições Matriz_Temp e A2 tem... ZERO posições!!! Defina um tamanho fixo para estes vetores. Exemplo:
int A1[][2]={{1,0},{2,1},{3,2},{4,2},{5,3}};
int A3[][2]={{12,0},{13,1},{14,2},{15,2},{16,3}};
int Matriz_Temp[100][2]={};
int A2[100][2]={};
2- Na sua lógica de cópia você avança apenas 3 posições:
for (int i=0;i<5;i++)
{
    for (int j=0;j<2;j++)
    {
       A2[i][j]=A3[i][j];
       A2[i+3][j]=Matriz_Temp[i][j]; //Matriz A2 na posição i+3 = matriz tempórária?
        cout<<A2[i][j]<<" ";
    }
    cout<<endl;
}
Mas o correto é avançar 5 posições pois este é o número de elementos da primeira matriz:
for (int i=0;i<5;i++)
{
    for (int j=0;j<2;j++)
    {
       A2[i][j]=A3[i][j];
       A2[i+5][j]=Matriz_Temp[i][j]; //Matriz A2 na posição i+3 = matriz tempórária?
        cout<<A2[i][j]<<" ";
    }
    cout<<endl;
}

Abraços,

Marcelo Utikawa da Fonseca

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...