מערכים כארגומנטים לפונקציות
חלק מהיחידה יסודות במסלול ה-C של Coddy. שיעור 58 מתוך 63.
אפשר להעביר מערכים לפונקציות ב-C כארגומנטים. כשמערך מועבר לפונקציה, מה שמועבר בפועל הוא כתובת הזיכרון של האיבר הראשון.
הצהירו על מערך ועל פונקציה שמקבלת אותו כארגומנט:
void displayArray(int arr[], int size) {
for(int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}צרו מערך וקראו לפונקציה:
int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);כשמעבירים מערך לפונקציה, שינויים שנעשים במערך בתוך הפונקציה ישפיעו על המערך המקורי:
void doubleValues(int arr[], int size) {
for(int i = 0; i < size; i++) {
arr[i] = arr[i] * 2;
}
}
// קרא לפונקציה
doubleValues(numbers, 5);
// כעת numbers מכיל: {20, 40, 60, 80, 100}אתגר
קלצרו פונקציה בשם sumArray שמקבלת שני ארגומנטים:
- מערך של מספרים שלמים (arr).
- מספר שלם (size) שמייצג את גודל המערך.
הפונקציה צריכה לחשב ולהחזיר את סכום כל האיברים במערך.
לאחר מכן, בפונקציה הראשית:
- קראו מספר שלם n (גודל המערך).
- קראו n מספרים שלמים ואחסנו אותם במערך.
- קראו לפונקציה sumArray עם המערך.
- הדפיסו את הסכום בפורמט: "Sum: X" (כאשר X הוא הסכום).
נסו בעצמכם
#include <stdio.h>
// כתבו כאן את הפונקציה sumArray שלכם
int main() {
int n;
scanf("%d", &n);
int arr[n];
for(int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// קראו לפונקציה sumArray והדפיסו את התוצאה
return 0;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
2משתנים
סוגי נתוניםמספר שלםמספר עשרוני – Doubleתוויםערכים בוליאנייםקבועיםיסודות printfכללי מתן שמות למשתניםהמרת טיפוסים חלק 1המרת טיפוסים חלק 2אתגר סיכום8מערכים
הצהרת מערכיםגישה לאיבריםשינוי איבריםמערכים רב־ממדייםאתגר חזרה מס' 1מערכים כארגומנטים לפונקציותאלגוריתמים למערכיםאתגר חזרה מס' 2תרגלו בעצמכם: קומפיילר C אונליין