fork download
  1. #include <stdio.h>
  2.  
  3. int max2(int a, int b) {
  4.  
  5. if(a > b) return a;
  6.  
  7. else
  8. return b;
  9. }
  10. // 0 9
  11. int divide_et_impera(int arr[], int lo, int hi, int *max) {
  12.  
  13. if( lo == hi ) {
  14.  
  15. return arr[ lo ];
  16.  
  17. } else {
  18.  
  19. // 0 4 max
  20. int a = divide_et_impera(arr, lo, (lo+hi)/2, max);
  21.  
  22. // 5 9
  23. int b = divide_et_impera(arr, (lo+hi)/2+1, hi, max);
  24.  
  25. *max = max2(a,b);
  26.  
  27. return *max;
  28. }
  29. }
  30.  
  31.  
  32. int main(int argc, char const *argv[]) {
  33.  
  34. int max;
  35.  
  36. int arr[10] = {0,1,222,3,4,115,6,7,8,19};
  37. // 0 1 2 3 4 5 6 7 8 9
  38. //(0+9)/2
  39. //max(0,1) = 1
  40. //max(222,3) = 222
  41. //max(1,222) = 222
  42.  
  43.  
  44. divide_et_impera(arr, 0, 9, &max);
  45.  
  46. printf("max = %d\n",max);
  47.  
  48. return 0;
  49. }
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
max = 222