Модифицированный бинарный поиск: программа завершается с ошибкой - C (СИ)
Формулировка задачи:
Доброго времени суток. Чутка модифицировал функцию бинарного поиска и теперь программа завершается с ошибкой, причем в режиме отладчика завершается все нормально. Прошу помощи.
#include <stdio.h> #include <stdlib.h> #define SIZE 200 int binsearch(int, int [SIZE], int); void SetMass (int [], int, int); int main() { int x, v[SIZE], result; SetMass(v, 150, 1); x = 250; result = binsearch(x, v, SIZE); printf("%d\n",result); return 0; } // возращает позицию элемента массива v размерностью n, совпадающего с x; ver.2 int binsearch(int x, int v[], int n) // преполагается что v - упорядочный по возрастанию массив { int low, high, mid; low = 0; high = n - 1; while (low <= high && x != v[mid]) { mid = (low + high) /2; if (x < v[mid]) high = mid -1; else low = mid + 1; } if ( x == v[mid]) return mid; else return -1; } void SetMass(int v[],int a,int step)// заполняет массив v упорядоченными числами с шагом step { int i; for (i=0; i<SIZE; i++, a += step) v[i] = a; }
Решение задачи: «Модифицированный бинарный поиск: программа завершается с ошибкой»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #define SIZE 200 int binsearch(int, int [SIZE], int); void SetMass (int [], int, int); int main() { int x, v[SIZE], result; SetMass(v, 150, 1); x = 250; result = binsearch(x, v, SIZE); printf("%d\n",result); return 0; } // возращает позицию элемента массива v размерностью n, совпадающего с x; ver.2 int binsearch(int x, int v[], int n) // преполагается что v - упорядочный по возрастанию массив { int low, high, mid; low = 0; high = n - 1; mid = (low + high) /2; while (low <= high && x != v[mid]) { if (x < v[mid]) high = mid -1; else low = mid + 1; mid = (low + high) /2; } if ( x == v[mid]) return mid; else return -1; } void SetMass(int v[],int a,int step)// заполняет массив v упорядоченными числами с шагом step { int i; for (i=0; i<SIZE; i++, a += step) v[i] = a; }
Объяснение кода листинга программы
- Программа включает две функции:
binsearch
иSetMass
. - Функция
binsearch
выполняет модифицированный бинарный поиск в массивеv
элементов, гдеn
- размер массива. - В функции
main
создается массивv
размером200
, заполняется значениями с шагом1
с помощью функцииSetMass
и инициализируется переменнаяx
значением250
. - Затем вызывается функция
binsearch
с аргументамиx
,v
и200
, и результат поиска выводится на экран. - Функция
SetMass
заполняет массивv
значениями с шагомstep
. - Если в процессе бинарного поиска найден элемент
x
, функция возвращает его индекс. - Если элемент
x
не найден, функция возвращает-1
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д