fork download
  1. #include <stdio.h>
  2.  
  3. int binary_search(int a[], int n, int x) {
  4. int left = 0;
  5. int right = n - 1;
  6. int mid;
  7.  
  8. while (left <= right) {
  9. mid = (left + right) / 2;
  10.  
  11. if (a[mid] == x) {
  12. return mid; // 見つかった
  13. } else if (a[mid] < x) {
  14. left = mid + 1;
  15. } else {
  16. right = mid - 1;
  17. }
  18. }
  19.  
  20. return -1; // 見つからなかった
  21. }
  22.  
  23. int main() {
  24. int n, x;
  25. int a[100];
  26.  
  27. // 要素数入力
  28. scanf("%d", &n);
  29.  
  30. // 配列入力(昇順で入れること!)
  31. for (int i = 0; i < n; i++) {
  32. scanf("%d", &a[i]);
  33. }
  34.  
  35. // 探す値
  36. scanf("%d", &x);
  37.  
  38. int ans = binary_search(a, n, x);
  39.  
  40. if (ans != -1) {
  41. printf("a[%d] = %d\n", ans, a[ans]);
  42. } else {
  43. printf("not found\n");
  44. }
  45.  
  46. return 0;
  47. }
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout
not found