fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int nibuntansaku(int n,int x,int a[]){
  4. int lef=0,rig=n-1;
  5. int mid;
  6. while(lef<=rig){
  7. mid=(lef+rig)/2;
  8. if(a[mid]<x){
  9. lef=mid+1;
  10. }else if(a[mid]>x){
  11. rig=mid-1;
  12. }else if(a[mid]==x){
  13. return mid;
  14. }
  15. }
  16. return -1;
  17. }
  18. int main(){
  19. int i,n,x;
  20. int *a;
  21. scanf("%d %d",&n,&x);
  22. a=(int *)malloc(sizeof(int)*n);
  23. if(a==NULL){
  24. printf("ERROR\n");
  25. return 0;
  26. }
  27. for(i=0;i<n;i++){
  28. scanf("%d",&a[i]);
  29. }
  30. int ans=nibuntansaku(n,x,a);
  31. if(ans==-1){
  32. printf("みつかりませんでした。");
  33. }else{
  34. printf("a[%d]=%d",ans,x);
  35. }
  36. }
Success #stdin #stdout 0s 5328KB
stdin
5 3
1 2 3 4 5
stdout
a[2]=3