Menu
Coddy logo textTech

Arrays Multidimensionais

Parte da seção Fundamentals do Journey de C da Coddy — lição 56 de 63.

Um array multidimensional é um array de arrays. Em C, você pode criar um array 2D (o array multidimensional mais comum), essencialmente uma tabela com linhas e colunas.

Declare um array bidimensional:

int matrix[3][4];

Isso cria um array 2D com 3 linhas e 4 colunas.

Você pode inicializar uma matriz 2D ao declará-la:

int matrix[3][4] = {
    {1, 2, 3, 4},    // Primeira linha
    {5, 6, 7, 8},    // Segunda linha
    {9, 10, 11, 12}  // Terceira linha
};

Para acessar elementos em um array 2D, use dois índices:

int value = matrix[1][2];  // Acessa a linha 1, coluna 2 (o valor será 7)

Para modificar um elemento em um array 2D:

matrix[0][3] = 100;  // Altera o elemento na linha 0, coluna 3 para 100

Você também pode usar loops aninhados para acessar todos os elementos em um array 2D:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        printf("%d ", matrix[i][j]);
    }
    printf("\n");  // Nova linha após cada linha
}
challenge icon

Desafio

Fácil

Crie uma função chamada printDiagonal que recebe uma matriz quadrada 2D (onde o número de linhas é igual ao número de colunas) e imprime os elementos da diagonal principal (do canto superior esquerdo ao inferior direito).

A função deve:

  1. Receber uma matriz de inteiros e seu tamanho como parâmetros.
  2. Imprimir cada elemento da diagonal principal (onde o índice da linha é igual ao índice da coluna).
  3. Separar cada elemento com um espaço.

Por exemplo, dada a matriz:

1 2 3 4 5 6 7 8 9

A função deve imprimir: 1 5 9

Folha de consulta

Um array multidimensional é um array de arrays. Em C, você pode criar um array 2D com linhas e colunas.

Declare um array 2D:

int matrix[3][4];

Inicialize um array 2D ao declarar:

int matrix[3][4] = {
    {1, 2, 3, 4},    // Primeira linha
    {5, 6, 7, 8},    // Segunda linha
    {9, 10, 11, 12}  // Terceira linha
};

Acesse elementos usando dois índices:

int value = matrix[1][2];  // Acessa a linha 1, coluna 2 (o valor será 7)

Modifique um elemento:

matrix[0][3] = 100;  // Altera o elemento na linha 0, coluna 3 para 100

Use loops aninhados para acessar todos os elementos:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        printf("%d ", matrix[i][j]);
    }
    printf("\n");  // Nova linha após cada linha
}

Experimente você mesmo

#include <stdio.h>

// Função para imprimir os elementos da diagonal de uma matriz quadrada
void printDiagonal(int matrix[][100], int size) {
    // Escreva seu código aqui
    
}

int main() {
    int size;
    scanf("%d", &size);
    
    int matrix[100][100];
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }
    
    printDiagonal(matrix, size);
    
    return 0;
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentals