Ir ao conteúdo
  • Cadastre-se

Problema em matrizes


Lucas532

Posts recomendados

gente tenho que criar um programa em C que leia uma matriz 4x4 e diga qual o maior elemento de cada linha e o menor elemento de cada coluna, e ele funciona em todos os casos menos no maior elemento da linha 1 esse sempre da errado não sei porque. o código até agora esta anexado no post...

Untitled1.c

Link para o comentário
Compartilhar em outros sites

O único erro aí é que você está usando a menorc[ ] de maneira errada.

Citação

for (i=0; i<4; i++)
    {
        menorc[j] = mat[0];
        for (j=0; j<4; j++)
        {
            if(mat[j] < menorc[j])
                menorc[j] = mat[j];
        }
    }

Percebe que está usando J como índice sendo que o J está com o valor 4?

Assim ele está sempre pegando um lixo de memória e de alguma forma está alterando o vetor maiorl[ ].

Provavelmente porque o maiol[ ] está alocado logo após o menorc[ ] na memória.

Assim dá certo olha:

Citação

    menorc[0] = mat[0][0];
    menorc[1] = mat[0][1];
    menorc[2] = mat[0][2];
    menorc[3] = mat[0][3];
    for (i=0; i<4; i++)
    {
        for (j=0; j<4; j++)
        {
            if(mat[j] < menorc[j])
                menorc[j] = mat[j];
        }
    }

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Tem alguns errinhos no seu código, o próprio @MassakiMsk corrigiu uma parte, mas na do maior também tem uns erros, corrigindo:

    //Como ja lemos o j0, começamos no j1
    for(i=0; i<4; i++)
    {
        maiorl[i] = mat[i][0];
        for (j=1; j<4; j++)
        {
            //corrigido
            if(mat[i][j] > maiorl[i])
                maiorl[i] = mat[i][j];

        }
    }
    //Como ja lemos o j0, começamos no j1
    for (i=0; i<4; i++)
    {
        menorc[i] = mat[i][0];
        for (j=1; j<4; j++)
        {
            //corrigido
            if(mat[i][j] < menorc[i])
                menorc[i] = mat[i][j];
        }
    }

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@MassakiMsk Antigamente acontecia muito isso, se você escrevesse algo do tipo int vetor (<--- aqui eu escrevi o indice i), o indice sumiria, só daria certo se escrevesse [ i ] ou trocasse o vetor por vetor[qualquer_outro_nome]

Antigamente era pior, pois afetava até códigos entre tags. Eu sempre achei isso muito estranho...

 

 

 

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!