חזרה: ארגומנטים של מצביעי פונקציה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C של Coddy. שיעור 30 מתוך 63.
אתגר
קלכתבו תוכנית ב-C שמממשת פונקציה למציאת הערכים המינימלי והמקסימלי במערך באמצעות ארגומנטים שהם מצביעים. התוכנית שלכם צריכה:
- ליצור פונקציה בשם
findMinMaxשמקבלת ארבעה פרמטרים:- מערך של מספרים שלמים
- גודל המערך
- מצביע למספר שלם לאחסון הערך המינימלי
- מצביע למספר שלם לאחסון הערך המקסימלי
- בתוך הפונקציה
findMinMax, לעבור על המערך כדי למצוא את הערכים המינימלי והמקסימלי - להשתמש באופרטור ביטול ההפניה כדי לאחסן את הערך המינימלי בכתובת שאליה מצביע מצביע ה-min
- להשתמש באופרטור ביטול ההפניה כדי לאחסן את הערך המקסימלי בכתובת שאליה מצביע מצביע ה-max
- בפונקציה
main, לקרוא מספר שלםnשמייצג את מספר האיברים במערך - לקרוא
nערכים של מספרים שלמים ולאחסן אותם במערך - להכריז על שני משתנים של מספרים שלמים,
minValueו-maxValue, כדי לאחסן את התוצאות - לקרוא לפונקציה
findMinMaxולהעביר לה את המערך, את גודלו ואת הכתובות שלminValueו-maxValue - להדפיס את התוצאות בתבנית:
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;
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1יסודות המצביעים
מהו מצביע?הכרזה על מצביעיםאופרטור לקיחת הכתובת (&)אופרטור ביטול ההפניה (*)מצביעי NULLסיכום: יסודות המצביעים2מצביעים ומערכים
שמות מערכים כמצביעיםאיברי מערך ומצביעיםאריתמטיקה של מצביעיםהשוואת מצביעיםסיכום: מעבר על מערך באמצעות מצביעים5מצביעים ופונקציות
העברה לפי ערךהעברת מצביעים לפונקציותשינוי משתנים באמצעות מצביעיםדוגמה קלאסית: החלפההעברת מערכים לפונקציותחזרה: ארגומנטים של מצביעי פונקציה3מערכי תווים ומחרוזות
מחרוזות כמערכי charתו הסיום nullקלט מחרוזת באמצעות scanfשימוש ב־strlen()שימוש ב־strcpy()שימוש ב־strcat()שימוש ב־strcmp()סיכום: פונקציות מחרוזת בסיסיותתרגלו בעצמכם: קומפיילר C אונליין