שאלה בסיסית בc#
שלום, ניסיתי לחפש מספר במערך באמצעות חיפוש בינארי. לא מופיעות לי שגיאות הידור אך המספר לא נמצא. ניסיתי לפתור כך: Console.WriteLine("enter a number"); int num = int.Parse(Console.ReadLine()); int[] arr = new int[5] { 3, 67, 4, 4, 17 }; printarr(arr); Console.WriteLine("****"); bubbles(arr); printarr(arr); findarr(arr, num); } static void bubbles(int[] arr) { int temp = 0; for (int i = 1; i < arr.Length; i++) { for (int j = 0; j < arr.Length - i; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return; } static void printarr(int[] arr) { for (int i = 0; i < arr.Length; i++) { Console.WriteLine(arr); } return; } static void findarr(int[] arr, int num) { int div = 0, j = 0, count = 0, index = 0, i = arr.Length - 1; while (j > i) { div = (j + i) / 2; if (num == arr[div]) { count++; index = div; } else if (num > arr[div]) { j = div; } else { i = div; } } if (num == arr[div]) { Console.WriteLine("the num {0} appears in index {1} {2} times", num, div, count); } else { Console.WriteLine("not found"); } אשמח אם תעזרו לי לפתור את התרגיל , תודה
שלום, ניסיתי לחפש מספר במערך באמצעות חיפוש בינארי. לא מופיעות לי שגיאות הידור אך המספר לא נמצא. ניסיתי לפתור כך: Console.WriteLine("enter a number"); int num = int.Parse(Console.ReadLine()); int[] arr = new int[5] { 3, 67, 4, 4, 17 }; printarr(arr); Console.WriteLine("****"); bubbles(arr); printarr(arr); findarr(arr, num); } static void bubbles(int[] arr) { int temp = 0; for (int i = 1; i < arr.Length; i++) { for (int j = 0; j < arr.Length - i; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return; } static void printarr(int[] arr) { for (int i = 0; i < arr.Length; i++) { Console.WriteLine(arr); } return; } static void findarr(int[] arr, int num) { int div = 0, j = 0, count = 0, index = 0, i = arr.Length - 1; while (j > i) { div = (j + i) / 2; if (num == arr[div]) { count++; index = div; } else if (num > arr[div]) { j = div; } else { i = div; } } if (num == arr[div]) { Console.WriteLine("the num {0} appears in index {1} {2} times", num, div, count); } else { Console.WriteLine("not found"); } אשמח אם תעזרו לי לפתור את התרגיל , תודה