Faça um programa que leia um arquivo que contenha as dimensões de uma matriz (linha e coluna), a quantidade de posições que serão anuladas e as posições a serem anuladas. Em seguida, imprima na tela uma matriz com essas dimensões onde as posições não-nulas são preenchidas com 1 e as nulas com 0.
Exemplo de arquivo de entrada:
Matriz resultante:
Passo 1
Bom, nós já somos craques nisso, então... Vamos começar o nosso programa declarando as variáveis essenciais para o funcionamento dele:
Passo 2
Com todas essas variáveis declaradas, nós agora podemos abrir o arquivo que armazena as informações de nossa matriz no modo de leitura:
Passo 3
Beleza! Vamos agora analisar o arquivo exemplo mais uma vez:
Você percebe a importância da primeira linha desse arquivo?
Ela basicamente passa as informações gerais da nossa matriz: número de linhas, número de colunas e quantas posições deverão ser anuladas.
É justamente por esse motivo que antes de continuarmos nós iremos utilizar a função fscanf para ler do arquivo as informações gerais da matriz e armazená-las em variáveis do nosso programa:
Passo 4
Agora que finalmente temos informações relevantes sobre a matriz que iremos imprimir (lidas da primeira linha do arquivo), podemos finalmente declará-la com as dimensões corretas e preenchê-la com o valor 1:
Passo 5
Agora que temos uma matriz devidamente preenchida, está na hora de utilizarmos um laço de repetição para percorrermos o arquivo verificando quais posições de devem ser anuladas:
Ou seja, utilizaremos a função fscanf a cada loop do laço de repetição for para ler do arquivo qual posição deve ser anuladas ( e ) e, logo em seguida, atribuímos o valor 0 a essa posição de .
Isso deve se repetir até que todas as anulações tenham sido feitas, ou melhor, até que a quantidade de loops que o laço executou tenha atingido o valor de (variável que armazena a quantidade de anulações que devem ser feitas).
Passo 6
Após termos anulado todas as posições informadas pelo arquivo, basta imprimirmos a matriz resultante na tela:
Resposta
Ei, a resposta está no passo a passo :)