Ir ao conteúdo
  • Cadastre-se
Lucas532

Problema em matrizes

Recommended Posts

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

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@1freakday Verdade, mas acho que isso não é erro, é apenas falta de otimização, pois o programa vai rodar 1 comando descartável comparando um valor com ele mesmo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@1freakday Eu acho estranho uma coisa. Meus índices dos vetores somem as vezes aqui no forum, e quando vou ler de outra pessoa também fica faltando coisas. Isso é só comigo?

  • Curtir 1

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×