Rejack

[Lec. #7] Exc. 3

Mar 12th, 2024
1,143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.65 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void main()
  4. {
  5.     int array[] = { 1,3,5,6,11 };
  6.     int array2[] = { 1,3,3,6,11 };
  7.     int array3[] = { 1,3,2,5,11 };
  8.  
  9.     int exSorted, re;
  10.  
  11.     re = isSorted(array, (sizeof(array) / sizeof(int)), &exSorted);
  12.     printf("[1] array returned: %d || array ex sorted: %d\n\n", re, exSorted);
  13.  
  14.     re = isSorted(array2, (sizeof(array2) / sizeof(int)), &exSorted);
  15.     printf("[2] array returned: %d || array ex sorted: %d\n\n", re, exSorted);
  16.  
  17.     re = isSorted(array3, (sizeof(array3) / sizeof(int)), &exSorted);
  18.     printf("[3] array returned: %d || array ex sorted: %d\n\n", re, exSorted);
  19.  
  20.     printf("-----------------------------------\n");
  21.  
  22.     exSorted = 1;
  23.  
  24.     re = isSorted_rec(array, (sizeof(array) / sizeof(int)), &exSorted);
  25.     printf("[1] array returned: %d || array ex sorted: %d\n\n", re, exSorted);
  26.  
  27.     re = isSorted_rec(array2, (sizeof(array2) / sizeof(int)), &exSorted);
  28.     printf("[2] array returned: %d || array ex sorted: %d\n\n", re, exSorted);
  29.  
  30.     re = isSorted_rec(array3, (sizeof(array3) / sizeof(int)), &exSorted);
  31.     printf("[3] array returned: %d || array ex sorted: %d\n\n", re, exSorted);
  32.  
  33. }
  34.  
  35. int isSorted(int* arr, int n, int *exSorted)
  36. {
  37.     int re;
  38.     re = 0;
  39.  
  40.     *exSorted = 1;
  41.  
  42.     for (int i = 0; i < n - 1; i++)
  43.     {
  44.         if (arr[i] > arr[i + 1])
  45.         {
  46.             *exSorted = 0;
  47.  
  48.             return 0;
  49.         }
  50.  
  51.         if (arr[i] == arr[i + 1])
  52.             *exSorted = 0;
  53.     }
  54.  
  55.     return 1;
  56. }
  57.  
  58. int isSorted_rec(int* arr, int n, int* exSorted)
  59. {
  60.     if (n <= 1)
  61.         return 1;
  62.  
  63.     int num, num2;
  64.  
  65.     num = arr[n - 1];
  66.     num2 = arr[n - 2];
  67.  
  68.     if (num < num2)
  69.     {
  70.         *exSorted = 0;
  71.  
  72.         return 0;
  73.     }
  74.  
  75.     if (num == num2)
  76.         *exSorted = 0;
  77.  
  78.     return isSorted_rec(arr, n-1, exSorted);
  79. }
Advertisement
Add Comment
Please, Sign In to add comment