Exercícios Resolvidos de Manipulando matrizes

Ver Teoria

Enunciado

Desenvolva um programa em C capaz de preencher e imprimir uma matriz de caracteres de ordem 3   x   3 .

Passo 1

A primeira coisa que nós temos que fazer, como na grande maioria dos programas, é definir um escopo.

Passo 2

Com o escopo definido, nós podemos declarar a matriz em si e as variáveis que serão úteis.

Aqui está algumas informações sobre elas:

  • i e j são variáveis contadoras;
  • m a t r i z é uma matriz de caracteres de ordem 3   x   3 .

Passo 3

A grande lógica envolvida no preenchimento de uma matriz está na utilização de duas estruturas de repetição aninhadas.

Isso acontece, pois o primeiro laço de repetição é utilizado para avançar as linhas (nesse caso) e o segundo laço para avançar as colunas.

Ou seja, o primeiro laço de repetição vai falar para o programa que está se iniciando em 0 e essa será a primeira linha da matriz que será preenchida com elementos. Em seguida, outro laço se inicia também em 0, mas esse tem a função de preencher as colunas dessa linha, fazendo assim com que o primeiro laço só avance a linha quando todas as posições dela já estiverem preenchidas (segundo laço finalizado).

Além disso, não podemos nos esquecer de colocarmos o comando %*c após o identificador de tipo. Isso pois, sempre que apertarmos a tecla Enter para confirmarmos um dos caracteres que preencherá a matriz desconsideraremos o caractere especial \n (quebra de linha) proveniente dessa tecla, que nesse caso é indesejado.

Passo 4

Por fim, basta realizarmos a impressão dessa matriz. Portanto, da mesma forma que os dois laços de repetição são úteis para escanear todas as posições de uma matriz, são também eles que nós utilizamos para imprimir uma.

A grande questão é que agora utilizamos o comando printf() ao invés de scanf() e devemos pular uma linha sempre que uma linha da matriz for avançar (linha 12), pois senão estaríamos imprimindo uma sequência de números e não a matriz em seu formato comum.

Resposta

Ei, a resposta está no passo a passo :)