Advertisement
silentkiler029

DebuggingUsingRandomNumber

Sep 23rd, 2020
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.34 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int faster(int ara[], int n) {
  6.    
  7.     int max1 = 0, max2 = 0;
  8.     for(int i = 0; i < n; i++) {
  9.         if(ara[i] > max1) {
  10.             max1 = ara[i];
  11.         }
  12.     }
  13.  
  14.     for(int i = 0; i < n; i++) {
  15.         if(ara[i] > max2 && ara[i] != max1) {
  16.             max2 = ara[i];
  17.         }
  18.     }
  19.    
  20.     return (max1 * max2);
  21. }
  22.  
  23. int naive(int ara[], int n) {
  24.    
  25.     int product, max_product = 0;
  26.     for(int i = 0; i < n; i++) {
  27.         for(int j = i + 1; j < n; j++) {
  28.             product = ara[i] * ara[j];
  29.             if(product > max_product) {
  30.                 max_product = product;
  31.             }
  32.         }
  33.     }
  34.     return max_product;
  35. }
  36.  
  37. int main()
  38. {
  39.     time_t t;
  40.     srand((unsigned) time(&t));
  41.    
  42.     int n;
  43.    
  44.     while(true) {
  45.         n = rand() % 10 + 1;
  46.         int ara[n];
  47.         for(int i = 0; i < n; i++) {
  48.             ara[i] = rand() % 9 + 1;
  49.         }
  50.        
  51.         int pf = faster(ara, n);
  52.         int pn = naive(ara, n);
  53.        
  54.         if(pf != pn) {
  55.            
  56.             for(int i = 0; i < n; i++) {
  57.                 printf("%d ", ara[i]);
  58.             }
  59.             printf("\n");
  60.            
  61.             printf("faster = %d, naive = %d\n", pf, pn);
  62.            
  63.             break;
  64.         }
  65.     }
  66.    
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement