Menu
Coddy logo textTech

חזרה: ארגומנטים של מצביעי פונקציה

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C של Coddy. שיעור 30 מתוך 63.

challenge icon

אתגר

קל

כתבו תוכנית ב-C שמממשת פונקציה למציאת הערכים המינימלי והמקסימלי במערך באמצעות ארגומנטים שהם מצביעים. התוכנית שלכם צריכה:

  1. ליצור פונקציה בשם findMinMax שמקבלת ארבעה פרמטרים:
    • מערך של מספרים שלמים
    • גודל המערך
    • מצביע למספר שלם לאחסון הערך המינימלי
    • מצביע למספר שלם לאחסון הערך המקסימלי
  2. בתוך הפונקציה findMinMax, לעבור על המערך כדי למצוא את הערכים המינימלי והמקסימלי
  3. להשתמש באופרטור ביטול ההפניה כדי לאחסן את הערך המינימלי בכתובת שאליה מצביע מצביע ה-min
  4. להשתמש באופרטור ביטול ההפניה כדי לאחסן את הערך המקסימלי בכתובת שאליה מצביע מצביע ה-max
  5. בפונקציה main, לקרוא מספר שלם n שמייצג את מספר האיברים במערך
  6. לקרוא n ערכים של מספרים שלמים ולאחסן אותם במערך
  7. להכריז על שני משתנים של מספרים שלמים, minValue ו-maxValue, כדי לאחסן את התוצאות
  8. לקרוא לפונקציה findMinMax ולהעביר לה את המערך, את גודלו ואת הכתובות של minValue ו-maxValue
  9. להדפיס את התוצאות בתבנית: Minimum: [value] ו-Maximum: [value]

לדוגמה, אם הקלט הוא:

5
12 7 23 4 18

הפלט שלכם צריך להיות:

Minimum: 4
Maximum: 23

האתגר הזה מדגים את הטכניקה העוצמתית של שימוש במספר ארגומנטים שהם מצביעים כדי להחזיר כמה ערכים מקריאה אחת לפונקציה, וכך לאפשר לפונקציה לשנות משתנים בתחום של הפונקציה הקוראת.

נסו בעצמכם

#include <stdio.h>

// TODO: כתבו כאן את הפונקציה findMinMax שלכם

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    int minValue, maxValue;
    
    // TODO: קראו כאן לפונקציה findMinMax
    
    printf("Minimum: %d\n", minValue);
    printf("Maximum: %d\n", maxValue);
    
    return 0;
}

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

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