Problem

1/11

matrizes bidimensionais. Introdução

Theory Click to read/hide

matriz 2D

Uma matriz bidimensional é uma matriz que possui dois índices para cada elemento (muitas vezes, essas matrizes são chamadas com uma palavra - matriz). 
É conveniente armazenar e processar vários dados tabulares em uma matriz. Assim como qualquer tabela é formada por linhas e colunas, as matrizes são formadas por linhas e colunas.
Para maior clareza, você pode representar uma matriz como esta:
Embora, de fato, na memória do computador, a matriz fique assim:

Para usar uma matriz em um programa, ela deve ser declarada como um array regular, especificando o tipo de dados e dois tamanhos (números ou constantes). Também é possível (e desejável) definir imediatamente os valores iniciais. Por exemplo, redefina todos os elementos.
Exemplo 1: Declarando uma matriz de 3 linhas e 3 colunas com valores iniciais arbitrários intA[3][3] = {{0,1,2}, {3,4,5}, {6,7,8} }; Exemplo 2: Declarando uma matriz de 5 linhas e 10 colunas (o tamanho é definido por meio de uma constante) com valores iniciais zero const int N = 5, M = 10; duplo B[N][M] = {}; Para nos referirmos a um elemento específico da matriz, usamos dois pares de colchetes, no primeiro colchete indicamos o número da linha, no segundo - o número da coluna.
Exemplo:   A[0][2] = 100; //numeração de linhas e colunas começa do zero

Preenchendo a matriz e exibindo-a

Para percorrer toda a matriz, é necessário um loop aninhado. Vejamos como preencher e gerar uma matriz usando o exemplo de um programa que solicita os valores dos elementos do teclado e simplesmente exibe a matriz preenchida na tela. #include <iostream> usando namespace std; int principal() { /* Declarando um array bidimensional */ const int N = 2, M = 3; int A[N][M]; /* preenche os elementos da matriz do teclado linha por linha */ int i, j; para (i = 0; i < N; i++) para (j = 0; j < M; j++) cin>> A[i][j]; //Mostra todos os elementos da matriz na tela linha por linha for (i = 0; i < N; i++) { //o loop externo é responsável por iterar sobre as linhas for (j = 0; j < M; j++) //loop para exibir os elementos da string cout << A[i][j] << " "; cout << endl; //após exibir os elementos da j-ésima linha, passamos para uma nova linha } retorna 0; } No exemplo acima, tanto o preenchimento quanto a exibição da matriz ocorrem linha por linha (primeiro passamos por todos os valores j - o índice das colunas, e só então o índice da linha muda - i)
Ao trocar loops (internos com externos), você pode preencher e/ou gerar uma matriz por colunas

Problem

Complete o programa que preenche a matriz NxM do teclado e a exibe linha por linha (5<=N,M<=100).