nightmare89
New member
עזרה בבקשה 
קודם כל חג שמח וצהריים טובים
במהלך פתירת שיעורי הבית בשפת סי נתקלתי בבעיה... אני ארשום לכם את התרגיל (הלקוח מבחינת בגרות שנת 2002) ואת הפיתרון, שאגב פועל חלק אבל לא נכון :\\ אם תוכלו להסביר לי מה הבעיה בפיתרון אשמח נורא. תודה מראש. הבעיה: א. נתון מערך a, בגודל 20 המכיל מספרים שלמים. איברי המערך השונים זה מזה. כתוב תת-תוכנית (פונקציה), שתקבל כפרמטרים את מערך a ומספר שלם num הפונקציה תבדוק אם המספר נמצא במערך אם המספר num מופיע במערך, תחזיר הפונקציה את מספר האיברים הקטנים ממנו המופיעים לפניו במערך. אם המספר num אינו מופיע במערך, תחזיר הפונקציה את מספר האיברים הקטנים ממנו בכל המערך. ב. כתוב תוכנית שתקלוט מספרים שלמים למערך בגודל 20 ו10 מספרים שלמים נוספים. התוכנית תזמן את הפונקציה שכתבת בסעיף א' עבור כל אחד מ- 10 המספרים שנקלטו, ותדפיס את הערך שהחזריה הפונקציה הערה: הנח שהקלט תקין תשובה:
קודם כל חג שמח וצהריים טובים
#include <stdio.h> #define n 20 typedef int arr[n]; typedef int arrl[n-10]; int checking(arr a, arrl num); void main() // ÷ìè: îòøê çã îéîãé áï 20 úàéí // ôìè: äàí äîùúðä ðîöà áîòøê { int i; // îåðä äìåìàä arr a; // îòøê çã îéîãé áï 20 úàéí int check; // îùúðä äé÷áì àú úåöàåú äôåð÷öéä arrl b; // îòøê çã îéîãé áï 10 úàéí for (i=0;i<n;i++) { printf("Enter number to a[%d]\n",i); scanf("%d",&a); }//for for (i=0;i<n-10;i++) { printf("Enter number to b[%d]\n",i); scanf("%d",&b); }//for printf("\n\n"); for (i=0;i<n-10;i++) { check=checking(a,b); printf("%d\n",check); }//for }//main int checking(arr a, arrl num) // èòðú ëðéñä: îòøê çã îéîãé áï 20 úàéí åîùúðä ìáãé÷ä // èòðú éöéàä: ðúåï áùàìä { int i,x; // îåðä äìåìàä int counter=0; // îåðä äáãé÷ä int temp; // îùúðä æîðé ìáãé÷ä for (i=0;i<n;i++) { for (x=0;x<n-10;x++) { if (num[x] == a) temp=1; else temp=2; }//for }//for if (temp == 1) { for (i=0;i<n;i++) { for (x=0;x<num-1;i++) { if (num[x] < a) counter++; }//for }//for }//if else { for (i=0;i<n;i++) { for (x=0;x<n-10;x++) { if (num[x] < a) counter++; }//for }//for }//else return counter; }//checking