Desafio de Revisão nº 2
Parte da seção Fundamentos do Journey de C da Coddy. Lição 60 de 63.
Desafio
FácilVamos testar suas habilidades de manipulação de arrays em C!
Crie um programa que execute operações em um array 2D (matriz):
- Crie uma função
rotateMatrixque:- Receba a matriz original, uma segunda matriz para preencher com o resultado rotacionado e o tamanho
- Gire a matriz 90 graus no sentido horário
Use isto para girar a matriz:rotated[j][size-1-i] = original[i][j]; - Escreva o resultado na segunda matriz (a função retorna
void; omainfornecido o imprime para você)
- Crie uma função
findElementque:- Receba um array 2D de inteiros, seu tamanho e um valor-alvo
- Retorne 1 se o valor-alvo for encontrado na matriz e 0 caso contrário
Experimente você mesmo
#include <stdio.h>
void rotateMatrix(int original[][10], int rotated[][10], int size);
int findElement(int matrix[][10], int size, int target);
void rotateMatrix(int original[][10], int rotated[][10], int size) {
// Seu código aqui
}
int findElement(int matrix[][10], int size, int target) {
// Seu código aqui
}
// Não modifique o código abaixo
int main() {
int size;
scanf("%d", &size);
int matrix[10][10];
int rotated[10][10];
int value = 1;
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
matrix[i][j] = value++;
}
}
printf("Original Matrix:\n");
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
printf("\n");
rotateMatrix(matrix, rotated, size);
printf("Rotated Matrix:\n");
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
printf("%d ", rotated[i][j]);
}
printf("\n");
}
printf("\n");
int result = findElement(matrix, size, 10);
if (result) {
printf("Found\n");
} else {
printf("Not found\n");
}
return 0;
}
Todas as lições de Fundamentos
2Variáveis
Tipos de dadosInteiroPonto flutuante - DoubleCaracteresBooleanosConstantesNoções básicas de printfRegras de nomenclatura de variáveisConversão de tipos - Parte 1Conversão de tipos - Parte 2Desafio de revisão3Operadores
Operadores aritméticosOperador móduloIncremento/DecrementoOperadores de atribuiçãoOperadores relacionaisOperadores lógicos Parte 1Operadores lógicos Parte 2Operadores lógicos Parte 3Desafio de revisãoPratique por conta própria: Compilador de C online