fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int binary(int a[], int n, int x)
  5. {
  6. int lef = 0, rig = n - 1;
  7.  
  8. while(lef <= rig)
  9. {
  10. int mid=(lef + rig)/2;
  11.  
  12. if(a[mid] == x)
  13. {
  14. return mid;
  15. }
  16. else if(a[mid] > x)
  17. {
  18. rig=mid-1;
  19. }
  20. else
  21. {
  22. lef=mid+1;
  23. }
  24. }
  25. return -1; // 見つからなi
  26. }
  27. int main(void)
  28. {
  29. int x,n,ans;
  30. printf("個数と、数字を入力");
  31. scanf("%d %d",&n,&x);
  32. int *a;
  33. a=(int*)malloc(sizeof(int)*n);
  34.  
  35. printf("\n数列を入力してください\n");
  36. for(int i=0;i<n;i++)
  37. {
  38. scanf("%d",&a[i]);
  39. }
  40. ans=binary(a,n,x);
  41. if (ans == -1)
  42. printf("見つかりませんでした\n");
  43. else
  44. printf("a[%d] = %d\n", ans, a[ans]);
  45.  
  46. free(a);
  47. return 0;
  48. }
  49.  
Success #stdin #stdout 0.01s 5304KB
stdin
Standard input is empty
stdout
個数と、数字を入力
数列を入力してください
見つかりませんでした