Nesta sétima aula vamos aprender:
- Declarar matrizes
- Adicionar dados na matriz
- Percorrer a Matriz
- Utilizar a Matriz
- Matrizes tri e multidimencionais
Matriz
A matriz é bem parecida com o array, na verdade a matriz é um array bidimensional, enquanto o array permite armazenar os dados em apenas uma linha, a matriz permite armazenar em linhas e colunas, veja um exemplo de matriz preenchida com números inteiros:

Assim como no Array, para armazenar os valores, devemos informar a posição que ele vai ser inserido. Na nossa matriz exemplo o número 10 foi armazenado na segunda coluna da primeira linha, neste caso o valor foi atribuído desta forma:
matriz[0][1] = 10;
Note que os índices das matrizes também começam por 0, por isso a primeira linha tem o índice 0 e a segunda 1.
Declaração de Matriz
A matriz é declarada da seguinte maneira:
tipoDosDados nomeDaMatriz[tamanhoDaLinha][tamanhoDaColuna];
No nosso exemplo usamos uma matriz 5×5 que é declarada desta maneira:
int matriz[5][5];
Adicionando dados na matriz
A matriz pode receber dados de diversas maneiras, eles podem já ser inicializados junto com a matriz:
int matriz[2][5] = {{1, 2, 3, 4, 5},{6, 7, 8, 9, 10}};
Se preferir, também pode ser adicionados diretamente na posição desejada:
matriz[0][1]= 2; mat1[0][2]= 3; mat1[1][3]= 9;
ou pode adicionar, percorrendo a matriz, utilizando estruturas de repetição e váriaveis de controle, que vamos ver a seguir.
Percorrendo a Matriz
Para percorrer uma matriz, temos que utilizar dois “FOR” e duas variáveis de controle, no nosso exemplo, vamos chama-las de “linha” e “coluna”, mas você pode utilizar qualquer nome, fica a seu critério.
for(linha=0;linha<"tamanho";linha++){
for(coluna=0;coluna<"tamanho";coluna++){
//acessando a posição referente a esta linha e coluna
}
}
Note que ao executar esse código, o programa vai ler todas as colunas da primeira linha e só depois vai pular para a próxima linha, desta maneira, o programa percorrerá todas as posições da matriz.
Utilizando a Matriz
Agora vamos começar a fazer operações com matrizes, imagine que em uma sala há 10 alunos e que você tem que armazenar as 4 notas de todos os alunos, seria um pouco trabalhoso criar uma variável para cada dado né? pois com a matriz isso fica mais simples, podemos ordenar por linha e colunas como se fosse uma tabela, veja o nosso exemplo:
int aluno[10][4]; int linha, coluna; //recebendo as notas for(linha=0;linha<10;linha++){ for(coluna=0;coluna<4;coluna++){ printf("Digite a nota %i do Aluno %in", coluna+1,linha+1); scanf("%i", &aluno[linha][coluna]); } } //exibindo as notas for(linha=0;linha<10;linha++){ printf("Notas do Aluno %i: %i, %i, %i, %in", linha+1, aluno[linha][0], aluno[linha][1], aluno[linha][2], aluno[linha][3]); }

Matriz tri e multidimencional
Uma matriz é um array bidimencional certo? Em C, é possível ter arrays tridimensionais e multidimensionais, a maneira de declarar é a mesma, tudo vai depender da quantidade de dimensões, veja um exemplo de declaração de uma matriz tridimensional:
int numeros[5][5][5];
Neste casso o array terá 3 índices, podendo conter mais dados, porém, não é aconselhável utilizar essas estruturas, para que não haja confusão é recomendado utilizar apenas matrizes e arrays, ou seja, apenas uma e duas dimensões.
Exercicio:
1) Crie uma matriz 20x20 que vai receber números inteiros, em seguida imprima na tela o resultado da soma de todos os números da matriz.
Veja também:
Aula 01
Aula 02
Aula 03
Aula 04
Aula 05
Aula 06
Aula 07
Aula 08