fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4.  
  5. int szuk_rek(int *A, int X, int L, int R);
  6.  
  7. int main(){
  8.  
  9. int A[9] = {-1,2,6,7,12,15,60,428,338};
  10. printf("liczba jest w A[%d] = %d", szuk_rek(A, 12, 0, 6), A[szuk_rek(A, 11, 0, 9)]);
  11.  
  12.  
  13.  
  14. return 0;
  15. }
  16.  
  17. int szuk_rek(int *A, int X, int L, int R){
  18. int srodek;
  19. printf("L =%d R = %d\n", L, R);
  20. if(A[R]==X){
  21. return R;
  22. }
  23. if( L >= (R-1) && A[L] != X){
  24. printf("jestem tu, powinno wywalic blad\n");
  25. return -1;
  26. }
  27. srodek = (L+R)/2;
  28.  
  29. if (A[srodek]== X){
  30. return srodek;
  31. }
  32.  
  33. if( A[srodek] < X){
  34. return szuk_rek(A, X,srodek, R);
  35. }
  36. if( A[srodek] > X){
  37. return szuk_rek(A, X, L,srodek);
  38. }
  39.  
  40. }
Success #stdin #stdout 0s 2896KB
stdin
Standard input is empty
stdout
L =0 R = 9
L =0 R = 4
L =2 R = 4
L =3 R = 4
jestem tu, powinno wywalic blad
L =0 R = 6
L =3 R = 6
liczba jest w A[4] = -1077736456