פורסם 2015 ביוני 1910 שנים היי,יש לי מטריצה לדוגמא:[TABLE=align: right][TR][TD]11[/TD][TD]7[/TD][TD]3[/TD][TD]6[/TD][TD]2[/TD][TD]8[/TD][/TR][TR][TD]33[/TD][TD]21[/TD][TD]21[/TD][TD]5[/TD][TD]12[/TD][TD]22[/TD][/TR][TR][TD]9[/TD][TD]7[/TD][TD]1[/TD][TD]1[/TD][TD]80[/TD][TD]4[/TD][/TR][TR][TD]27[/TD][TD]15[/TD][TD]10[/TD][TD]2[/TD][TD]12[/TD][TD]120[/TD][/TR][TR][TD]111[/TD][TD]57[/TD][TD]17[/TD][TD]13[/TD][TD]5[/TD][TD]2[/TD][/TR][TR][TD]113[/TD][TD]111[/TD][TD]111[/TD][TD]3[/TD][TD]14[/TD][TD]54[/TD][/TR][/TABLE]כתבתי פונקציה רקורסיבית שמוצאת לי במערך את המספר האי-זוגי הקטן ביותר.בכל שורה(מערך) יש מינימום 2 אלמנטים כאשר השמאלי הוא זוגי והימני הוא אי-זוגי,אם יש יותר אלמנטים אז האי-זוגיים ממויינים.במטריצה הספציפית,בשורה הראשונה האיבר הוא 3.בשורה השנייה האיבר הוא 5 וכו'.זו הפונ':int minOddLast(int *arr, int n){ if (*(arr + 1) % 2 == 1) return *(arr + 1); if (*(arr + n / 2) % 2 == 0) return minOddLast(arr + n / 2, n / 2); else return minOddLast(arr, n / 2 + 1);}הפונקציה הבאה מקבלת את המטריצה הנ"לומחזירה את הערך האי-זוגי הכי קטן מבין השורות תוך שימוש בפונקציה הנ"ל:אז בהתחלה חשבתי שתנאי העצירה בפונקציה הוא שתי השורות התחתונות במטריצה כשאני מגיע אליהן אז אני מחזיר את ההשוואה בין הערכים המוחזרים מקריאה של כל שורה לפונ' שמחזירה את הערך האי-זוגי הכ קטןאבל אני לא מצליח לשלב את הבדיקה בשאר השורותint minMatrixOdd(int arr[][N], int n){ if (n == 2) return (minOddLast(arr[n - 1], n) <= minOddLast(arr[n - 2], n)) ? minOddLast(arr[n - 1], n) : minOddLast(arr[n - 2], n); else return minMatrixOdd(arr + 1, n - 1) <= minMatrixOdd(arr + 1, n - 1) ? minMatrixOdd(arr + 1, n - 1) : minMatrixOdd(arr + 1, n - 1);לאחר מכן חשבתי לעשות הבדיקה על כל שורה בנפרד אבל הערך המוחזר מהווה בעיה int minMatrixOdd(int arr[][N], int n) { if (n == 1) return; minMatrixOdd(arr + 1, n-1); int min; return min = (minOddLast(arr[n - 1], n) <= minOddLast(arr[n - 2], n)) ? minOddLast(arr[n - 1], n) : minOddLast(arr[n - 2], n);}בשתי השורות הראשונות אני בעצם עושה הפרדה של המטריצה לשורות,כשמסתיימות הקריאות החוזרות,החזרה היא של כל שורה בנפרד. אז הבדיקה של שתי השורות התחתונות עובדת אבל אני לא מבין איך להמשיךהאם אפשר כיוון מסויים?תודה. נערך 2015 ביוני 1910 שנים על-ידי WarNet
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.