1
resposta

Imprimindo uma matriz: possível simples solução.

Salve rapa!

Tudo bem? Espero que sim.

Quando cheguei nessa atividade me deparei com o mesmo problema que diversos colegas já mencionaram em tópicos anteriores: ao tentar imprimir a matriz são impressos números aleatório que estavam na memória.

Lendo esses tópicos e seus comentários entendi que faltava fazer uma tribuição a minha matriz o que o professar, na atividade 4, acabou fazendo quando dava o fscanf para ler o arquivo txt externo. Eu, porém, não queria usar um arquivo externo e nem ficar fazendo atribuição manualmete, então cheguei a seguinte solução e espero que isso ajude outros colega a compreenderem melhor o problema.

Minha solução: Além de usar no "for" a variável incrementada "i" para percorrer as posições de memória nas linhas da matriz, também a usei para que seus valores preenchessem a matriz, assim não seriam mais impressos os lixos da memória, eu também poderia ter atribuído o número 200 no lugar da variável "i" que também daria certo. Confiram com ficou o código abaixo:

#include <stdio.h>
#include <stdlib.h>

int main() {

    int numeros [20] [10];

    for(int i = 0; i < 20; i++) {
        for(int j = 0; j < 10; j++) {  
            numeros [i] [j] = i;  // Atribuição dos valores que são incrementados em "i". 
            printf(" %d", numeros[i][j]);
        }

    printf(" \n");

    }

}

Ao executar o programa a saída obtida foi essa:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi José! Tudo bem?

Agradeço muito por ter enviado sua solução, ela poderá ser útil para auxiliar outros estudantes que estejam com a mesma dificuldade.

Realmente, se não inicializamos os valores de uma matriz, podemos ler "lixo" da memória, e para consertar esse problema podemos utilizar várias estratégias. Obrigada por ter mostrado a sua!

Qualquer dúvida ou sugestão, fique à vontade para enviar aqui no fórum!

Abraços e bons estudos!