fork download
  1. //Сы Юйхао, 1032255367,НКАбд-04-25,27.2.26, 17:10
  2. //Написать функцию для бинарного поиска элемента в упорядоченном массиве.
  3. #include <stdio.h>
  4.  
  5. int h(int a[], int size, int x) {
  6. int left = 0, right = size - 1;
  7. while (left <= right) {
  8. int mid = left + (right - left) / 2;
  9. if (a[mid] == x) return mid;
  10. else if (a[mid] < x) left = mid + 1;
  11. else right = mid - 1;
  12. }
  13. return -1;
  14. }
  15.  
  16. int main() {
  17. int size;
  18. printf("Введите размер массива: ");
  19. scanf("%d", &size);
  20.  
  21. int a[size];
  22. printf("Введите элементы массива:\n");
  23. for (int i = 0; i < size; i++)
  24. scanf("%d", &a[i]);
  25.  
  26. int x;
  27. printf("Введите искомый элемент: ");
  28. scanf("%d", &x);
  29.  
  30. int pos = h(a, size, x);
  31. if (pos != -1)
  32. printf("Позиция: %d\n", pos);
  33. else
  34. printf("Не найдено\n");
  35. return 0;
  36. }
Success #stdin #stdout 0.01s 5320KB
stdin
5
1 3 5 7 9
1
stdout
Введите размер массива: Введите элементы массива:
Введите искомый элемент: Позиция: 0