1. Total de Elementos
Quantos números inteiros cabem em uma matriz declarada como int valores[4][5];?
Ver Gabarito
Resposta: 20 elementos (4 linhas vezes 5 colunas).
for dentro de outro) para percorrer matrizes.Se um Vetor é uma linha, uma Matriz é uma tabela (planilha). Ela tem Linhas e Colunas.
| Sintaxe | Exemplo |
|---|---|
tipo nome[linhas][colunas]; |
int mapa[3][3]; (Cria um grid 3x3) |
nome[L][C] = valor; |
mapa[0][2] = 5; (Linha 0, Coluna 2) |
Preenchendo uma matriz 3x3 onde a diagonal principal é 1 e o resto é 0.
#include <stdio.h>
int main() {
int mat[3][3];
int lin, col;
// Dois laços: um para descer as linhas, outro para andar nas colunas
for(lin = 0; lin < 3; lin++) {
for(col = 0; col < 3; col++) {
if(lin == col) {
mat[lin][col] = 1; // Diagonal principal
} else {
mat[lin][col] = 0; // Resto
}
}
}
// Exibindo a matriz formatada
printf("Matriz Gerada:\n");
for(lin = 0; lin < 3; lin++) {
for(col = 0; col < 3; col++) {
printf("%d ", mat[lin][col]);
}
printf("\n"); // Pula linha após imprimir as colunas
}
return 0;
}
Vetores guardam vários dados do mesmo tipo. E se quisermos guardar um Aluno (que tem Nome, Idade e Nota)? Usamos Struct.
struct Aluno {
char nome[50];
int idade;
float nota;
}; // O ponto e vírgula no final é obrigatório!
#include <stdio.h>
#include <string.h>
// Definindo a "forma" do nosso dado
struct Pessoa {
char nome[50];
int idade;
};
int main() {
struct Pessoa p1;
// Gravando dados (use ponto para acessar os campos)
p1.idade = 25;
strcpy(p1.nome, "Maria Silva"); // Copiando texto para string
// Lendo dados
printf("Nome: %s\n", p1.nome);
printf("Idade: %d", p1.idade);
return 0;
}
Quantos números inteiros cabem em uma matriz declarada como int valores[4][5];?
Resposta: 20 elementos (4 linhas vezes 5 colunas).
Dado struct Carro c; que possui um campo ano, como faço para ler esse valor do teclado?
Resposta: scanf("%d", &c.ano); (Note o ponto acessando o campo).
Complete a lógica para somar todos os valores de uma matriz 2x2.
// ... declarações ...
float soma = 0;
for(i=0; i<2; i++){
for(j=0; j<2; j++){
soma = soma + matriz[i][j];
}
}
printf("Total: %f", soma);