1
resposta

Esta retornando o número da memória.

Boa tarde!

Quando utilizo 2 for o código esta retornando o número da memória, como resolver?

OBS: Com apenas 1 for funciona.

#include <stdio.h>

#include <stdlib.h>

int main(){

int numeros[20][10+1];

FILE* f;

f = fopen("numeros.txt", "r");

if(f == 0){
    printf("Erro na leitura do mapa\n");
    exit(1);        
}

for (int i = 0; i < 20; i++){
    fscanf(f , " %d", numeros[i]);        
}

for (int i = 0; i < 20; i++){
    for (int j = 0; j < 10; j++){
        printf("%d", numeros[i][j]);
    }
    printf("\n");                
}

fclose(f);

}

Resultado:

C:\Cursos\Alura\exercicios>matriz.out 06422244-10737415151006421408064224762002758976 1111111111642216420025628030642152841991201999510688200256295120028114850 -20727450743212720034590722003459072972150499512707930048 -961633963000097539840000 149477148000000000 1260588259688128067503066488163753673565536953276919321130965536467077996 -19232679261684300679304809699520-5536479050148793048079408873556 -8121568152002758976-1803035287-264218802002546252384879305566421832 29895429620028114850200281152497608009699328003737 1410065407642203637642184800-477174371397608006 0038007929856260199951070464219162002542062 111111111103232769764220649753436642205620025432476532 -20727450746421968199671211879408883864220360487014352100 -96163396326097484649753416007012352206 1494771480387014756096993287014752191925258147933024 12605882596422152199645208279298560879330247933032-5378996696422184 -192326792607933024851141184879330247933032179330326422180 -812156815642212441991204201136079330366422212199651711379330366422204 29895429664222681996580081819965169251996516899851141140419912041991200 14100654076422280642247619965411201172247328-26422280199651716542011366422400

1 resposta

Oii Andreia! Tudo bem?

Você precisa pegar os números separadamente também, usando dois fors tanto para lers os elementos da matriz quanto para imprimir. Fica mais ou menos dessa forma:

int numeros[20][10];

FILE* f;

f = fopen("numeros.txt", "r");

if(f == 0){
    printf("Erro na leitura do mapa\n");
    exit(1);        
}

for (int i = 0; i < 20; i++){
     for (int j = 0; j < 10; j++){
        fscanf(f , " %d", numeros[i][j]);
     }
}

for (int i = 0; i < 20; i++){
    for (int j = 0; j < 10; j++){
        printf("%d", numeros[i][j]);
    }
    printf("\n");                
}

fclose(f);

Caso ainda fique alguma dúvida, fique à vontade para perguntar!

Espero ter ajudado! Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software