Menu
Coddy logo textTech

אתגר חזרה מס' 2

חלק מהיחידה יסודות במסלול ה-C של Coddy. שיעור 60 מתוך 63.

challenge icon

אתגר

קל

בוא נבחן את הכישורים שלך בעיבוד מערכים בשפת C!

צור תוכנית שמבצעת פעולות על מערך דו־ממדי (מטריצה):

  1. צור פונקציה rotateMatrix ש:
    • מקבלת את המטריצה המקורית, מטריצה שנייה שתמלא בתוצאה המסובבת, ואת הגודל
    • מסובבת את המטריצה 90 מעלות בכיוון השעון
      השתמש בזה כדי לסובב את המטריצה: rotated[j][size-1-i] = original[i][j];
    • כותבת את התוצאה למטריצה השנייה (הפונקציה מחזירה void; הפונקציה main הנתונה מדפיסה אותה עבורך)
  2. צור פונקציה findElement ש:
    • מקבלת מערך של מספרים שלמים דו־ממדי, את גודלו וערך יעד
    • מחזירה 1 אם ערך היעד נמצא במטריצה, ו־0 אחרת

נסו בעצמכם

#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) {
    // הקוד שלך כאן
}

int findElement(int matrix[][10], int size, int target) {
    // הקוד שלך כאן
}

// אין לשנות את הקוד שלהלן
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;
}

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר C אונליין