Wyzwanie powtórkowe nr 2
Część sekcji Podstawy ścieżki C w Coddy. Lekcja 60 z 63.
Wyzwanie
ŁatwySprawdźmy Twoje umiejętności manipulowania tablicami w C!
Utwórz program, który wykonuje operacje na tablicy 2D (macierzy):
- Utwórz funkcję
rotateMatrix, która:- Przyjmuje oryginalną macierz, drugą macierz, w której umieszcza obrócony wynik, oraz rozmiar
- Obraca macierz o 90 stopni zgodnie z ruchem wskazówek zegara
Użyj tego, aby obrócić macierz:rotated[j][size-1-i] = original[i][j]; - Zapisuje wynik w drugiej macierzy (funkcja zwraca
void; podana funkcjamainwyświetli go za Ciebie)
- Utwórz funkcję
findElement, która:- Przyjmuje dwuwymiarową tablicę liczb całkowitych, jej rozmiar oraz szukaną wartość
- Zwraca 1, jeśli szukana wartość znajduje się w macierzy, a w przeciwnym razie 0
Spróbuj swoich sił
#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) {
// Tu wpisz swój kod
}
int findElement(int matrix[][10], int size, int target) {
// Tu wpisz swój kod
}
// Nie modyfikuj poniższego kodu
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;
}
Wszystkie lekcje w sekcji Podstawy
2Zmienne
Typy danychLiczby całkowiteLiczby zmiennoprzecinkowe — float i doubleZnakiWartości logiczneStałePodstawy printfZasady nazewnictwa zmiennychKonwersja typów — część 1Konwersja typów — część 2Wyzwanie podsumowujące3Operatory
Operatory arytmetyczneOperator moduloInkrementacja/dekrementacjaOperatory przypisaniaOperatory relacyjneOperatory logiczne — część 1Operatory logiczne — część 2Operatory logiczne — część 3Wyzwanie podsumowującePoćwicz samodzielnie: Kompilator C online