פורסם 2008 בנובמבר 2117 שנים היי אני צריך עזרה בשאלה הבאה:''כתוב פעולה המקבלת שני מערכים ממויינים(ללא חזרות) ומחזירה מערך המכיל את כל המס' הקיימים במערך הראשון ואינם קיימים במערך השני''. public static int[] Exist(int[] a, int[] b) { int iA = 0, iB = 0, iC = 0; int[] c = new int[Math.Max(a.Length, b.Length)]; while (iC < a.Length && iC < b.Length) { if (a[iA] != b[iB]) { c[iC] = a[iA]; iC++; } if (a[iA] < b[iB]) iA++; if (a[iA] > b[iB]) iB++; if (a[iA] == b[iB]) { iA++; iB++; } } return c; } static void Main(string[] args) { int[] arr = new int[6] { 2, 5, 7, 8, 13, 17 }; int[] arr2 = new int[7] { 3, 7, 17, 70, 71, 75, 80 }; int[] arr3 = Exist(arr, arr2); for (int i = 0; i < arr3.Length; i++) Console.WriteLine(arr[i]); } }}הבעיה היא שזה יוצא לי מגבולות המערך ואני גם לא חושב שכתבתי בכלל את התנאים כמו שצריך..אם מישהו יוכל להסביר לי איך עושים את זה אני אודה לו מאוד..תודה!
פורסם 2008 בנובמבר 2217 שנים 1) iC הוא אינדקס לתוצאה. ב- if אתה בודק את האינדקס של התוצאה עם האורכים של המקורות.2) שים לב שהלולאה הזו לא מספיקה. תחשוב מה קורה אם המערכים שונים בגודלם.
פורסם 2008 בנובמבר 2217 שנים מחבר 1) iC הוא אינדקס לתוצאה. ב- if אתה בודק את האינדקס של התוצאה עם האורכים של המקורות.2) שים לב שהלולאה הזו לא מספיקה. תחשוב מה קורה אם המערכים שונים בגודלם.1.לא הבנתי ממש למה אתה מתכוון2. אני יודע שצריך עוד לולאה ל''זנב'' שנשאר אבל רציתי קודם כל שהקטע הנוכחי יעבוד ואז להוסיף אותו..
פורסם 2008 בנובמבר 2217 שנים התכוונתי ב- WHILE, לא ב- IF:while (iC < a.Length && iC < b.LengthiC הוא לא אינדקס ב a או ב b, אלא ב- c. עלייך לבדוק עם האינדקסים המתאימים.כדאי לך לתת למערכים שמות ברורים יותר.
פורסם 2008 בנובמבר 2217 שנים מחבר התכוונתי ב- WHILE, לא ב- IF:while (iC < a.Length && iC < b.LengthiC הוא לא אינדקס ב a או ב b, אלא ב- c. עלייך לבדוק עם האינדקסים המתאימים.כדאי לך לתת למערכים שמות ברורים יותר.תודה על העזרה בינתיים.שינתי בwhile במקום iC לiA וiB ועכשיו כשאני מריץ אני מקבל:25781317ואז שגיאה index was outside of the bounds of the arrayלמה אני מקבל פלט ואז שגיאה?תודה
פורסם 2008 בנובמבר 2217 שנים כי יש סיכוי שאתה לא ממלא את כל המערך, רק חלק ממנו ? במקום ליצור מערך בהתחלה שאתה לא יודע מה יהיה הגודל הסופי שלו, תיצור List מסוג int ותוסיף לה ערכים עם Add כל הזמן ובסוף תחזיר ToArray()
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.