# data[].attributes.attachment_link.provider_name
Bóson Treinamentos em Ciência e Tecnologia

# data[].attributes.attachment_link.readable_text
Arrays bidimensionais em C: Matrizes

Declaração de uma Matriz em linguagem C

Declaramos matrizes em C de forma similar à declaração de um array unidimensional, porém acrescentando informação sobre o número de linhas e colunas da estrutura, conforme a sintaxe a seguir mostra:

tipo nome [num_linhas] [num_colunas];

Por exemplo, se desejarmos criar uma matriz de nome "notas", contendo 5 linhas e 4 colunas, escrevemos a instrução da seguinte forma:

O resultado é a criação da seguinte estrutura de armazenamento na memória:

Note que os números de índice são contados a partir de zero, como nos arrays unidimensionais (vetores).

Inicializando a matriz

Podemos inicializar a matriz já em sua declaração, atribuindo-lhe os valores de cada linha, sequencialmente, englobados dentro de chaves {}, como no exemplo a seguir:

float notas[5][4] = {{ 7.5, 6.8, 9.6, 6.7 }, { 6.5, 6.3, 8.4, 7.6 }, { 5.7, 8.6, 9.0, 4.5 }, { 4.5, 5.8, 6.8, 7.0 }, { 3.6, 7.6, 8.1, 6.5 } };

Podemos também escrever esse código da forma a seguir, para melhor visualização, pois a linguagem C ignora as quebras de linha inseridas no meio do código:

Ainda é possível declarar e inicializar a matriz atribuindo sequencialmente os valores, sem especificar explicitamente as linhas onde eles serão armazenados, como no exemplo:

float notas[5][4] = { 7.5, 6.8, 9.6, 6.7, 6.5, 6.3, 8.4, 7.6, 5.7, 8.6, 9.0, 4.5, 4.5, 5.8, 6.8, 7.0, 3.6, 7.6, 8.1, 6.5 };

Neste caso os valores serão armazenados a partir da posição 0,0 até preencher uma linha, e então se inicia o preenchimento da próxima linha, e assim sucessivamente até o final.

Recomendo, sempre que possível, utilizar constantes na declaração do tamanho da matriz, em vez de entrar diretamente com a quantidade de linhas e colunas, pois isso possibilita uma manutenção muita mais ágil do código no futuro. Por exemplo, poderíamos reescrever o código da seguinte forma:

Substituímos a declaração direta dos tamanhos pelas constantes NUM_L e NUM_C. Desta forma, se fosse necessário alterar o tamanho da matriz, bastaria alterar os valores dessas duas constantes. Essa técnica é mais útil quando os valores que preencherão a matriz forem fornecidos durante a execução do programa em si, e não escritos diretamente no código (hard-coded) como neste exemplo.

Após executar qualquer uma das instruções mostradas mesta seção, obteremos a matriz preenchida conforme mostra a figura a seguir:

Criando, inicializando e exibindo o conteúdo de uma matriz em C

Usando o código a seguir vamos criar, inicializar e exibir o conteúdo de uma matriz em linguagem C:

Executando esse código obteremos a saída a seguir:

Lembre-se de que uma matriz, assim como um vetor (array de uma dimensão), só pode conter dados de um mesmo tipo - no exemplo mostrado, todos os dados eram do tipo float.

Acessando um elemento da matriz

Se quisermos acessar um elemento específico da matriz, devemos conhecer sua localização, incluindo o número da coluna e da linha que contém o valor. Por exemplo, se quisermos visualizar o valor que está armazenado na coluna 3, linha 2, podemos usar o código seguinte:

printf("Valor do elemento na 2ª linha, 3ª coluna: %4.2f\n", notas[1][2]);

Essa instrução retornará o valor 8,4, armazenado na posição indicada. Note que a segunda linha é a linha 1, e a terceira coluna é a coluna 2, pois a contagem dos índices se inicia em zero.

Da mesma forma, se desejarmos atribuir um valor a uma posição específica da matriz, devemos indicar a linha e coluna correspondente ao local de armazenamento desejado.

# data[].attributes.attachment_link.title
Criando Arrays bidimensionais em C: Matrizes - Bóson Treinamentos em Ciência e Tecnologia

# data[].attributes.attachment_link.description
Nesta lição vamos mostrar como declarar e inicializar matrizes em linguagem C, além de acessar os elementos armazenados na matriz.

# data[].attributes.headline
bom dia professor, na alínea c, do exercício 6, é para mostrar o maior número de golos marcados por cada jogador, ou apenas o maior número de golos marcados por todos os jogadores? por exemplo (maior número de golos marcados por cada jogador = 0 foi 3, 1 foi 1... maior número de golos marcados por todos os jogadores foi 4). espero que me tenha feito entender, obrigado pela compreensão, aguardo uma resposta!

# data[].attributes.subject
bom dia professor, na alínea c, do exercício 6, é para mostrar o maior número de golos marcados por cada jogador, ou apenas o maior número de golos marcados por todos os jogadores? por exemplo (maior número de golos marcados por cada jogador = 0 foi 3, 1 foi 1... maior número de golos marcados por todos os jogadores foi 4). espero que me tenha feito entender, obrigado pela compreensão, aguardo uma resposta!

# data[].attributes.body
Total

# data[].attributes.body
#include

int main() {

/* Dado um nome introduzido pelo utilizador escreve no ecrã quantos caracteres tem o

nome, apresenta o nome escrito na vertical e mostra o nome escrito na horizontal em

maiúsculas */

char frase[100];

int nomeTamanho;

printf("Insira o seu nome: ");

scanf("%d", &nomeTamanho);

gets(frase);

nomeTamanho = strlen(frase);

printf("O seu nome possui %d caracteres\n", nomeTamanho);

for (int i = 0; i < frase[i]; i++) {

if (frase[i] == '\0');

printf("%c\n", frase[i]);

}

for (int i = 0; i < frase[i]; i++) {

if (frase[i] == '\0');

printf("%c ", frase[i]);

}

char palavra[100];

printf("\nIntroduza uma palavra: ");

scanf("%s", palavra);

printf("A sua palavra ao contrário: %s\n", strrev(palavra));

char segundaPalavra [100];

char vogais[] = "aeiouAEIOU"; // Adicionar para maiúsculas também

int contador = 0;

printf("Insira uma palavra: ");

// scanf("%s", segundaPalavra);

gets(segundaPalavra);

for (int i=0 ; i < strlen(segundaPalavra); i++){ // Contar o número de carateres que a palavra tem

for (int j=0 ; j < strlen(vogais); j++){ // Contar o número de vogais

if (segundaPalavra[i] == vogais[j]){

contador++;

}

}

}

printf ("\nA palavra informada possui %d vogais\n", contador);

return 0;

}