Moortiii

hand-in_3_1

Sep 8th, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.15 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define TRUE 1
  4. #define FALSE 0
  5.  
  6. int getMax(int numbers[]);
  7. int getMin(int numbers[]);
  8. int getSum(int numbers[]);
  9. float getAvg(int count, int sum);
  10. void sortArray(int numbers[]);
  11. float getMed(int numbers[]);
  12.  
  13. int getMax(int numbers[]) {
  14.     int high = numbers[0];
  15.     for(int i = 0; i < 10; i++) {
  16.         if(numbers[i] > high) {
  17.             high = numbers[i];
  18.         }
  19.     }
  20.     return high;
  21. }
  22.  
  23. int getMin(int numbers[]) {
  24.     int low = numbers[0];
  25.     for(int i = 0; i < 10; i++) {
  26.         if(numbers[i] < low) {
  27.             low = numbers[i];
  28.         }
  29.     }
  30.     return low;
  31. }
  32.  
  33. int getSum(int numbers[]) {
  34.     int sum = 0;
  35.     for(int i = 0; i < 10; i++) {
  36.         sum += numbers[i];
  37.     }
  38.     return sum;
  39. }
  40.  
  41. float getAvg(int count, int sum) {
  42.     int average = sum / count;
  43.     return average;
  44. }
  45.  
  46. /* https://www.lynda.com/C-tutorials/Using-loops-searching-sorting/164457/180402-4.html */
  47. void sortArray(int numbers[]) {
  48.     int swapped;
  49.     do {
  50.         swapped = FALSE;
  51.         for (int i = 1; i < 10; i++) {
  52.             int temp = numbers[i];
  53.             // If the current pair is out of order
  54.             if (numbers[i - 1] > numbers[i]) {
  55.                 // Swap the integers in numbers[i-1] and numbers[i]
  56.                 temp = numbers[i - 1];
  57.                 numbers[i-1] = numbers[i];
  58.                 numbers[i] = temp;
  59.                 // Notify the loop that something has changed in the array
  60.                 swapped = TRUE;
  61.             }
  62.         }
  63.     } while(swapped == TRUE);
  64. }
  65.  
  66. /* I would prefer to do something like this: int sortedArray[10] = sortArray(numbers);
  67.  * but I don't think it's possible to return an array from a function. Ask the teacher */
  68.  
  69. float getMed(int numbers[]) {
  70.     int swapped;
  71.     do {
  72.         swapped = FALSE;
  73.         for (int i = 1; i < 10; i++) {
  74.             int temp = numbers[i];
  75.             // If the current pair is out of order
  76.             if (numbers[i - 1] > numbers[i]) {
  77.                 // Swap the integers in numbers[i-1] and numbers[i]
  78.                 temp = numbers[i - 1];
  79.                 numbers[i-1] = numbers[i];
  80.                 numbers[i] = temp;
  81.                 // Notify the loop that something has changed in the array
  82.                 swapped = TRUE;
  83.             }
  84.         }
  85.     } while(swapped == TRUE);
  86.  
  87.     // We know that the array has ten elements exactly
  88.     // Therefore index 4 + 5 are the middle numbers
  89.     float median = (numbers[4] + numbers[5] / 2);
  90.  
  91.     return median;
  92. }
  93.  
  94. int main() {
  95.     int numbers[10];
  96.     printf("Please enter 10 integers:\n\n");
  97.     for(int i = 0; i < 10; i++) {
  98.         scanf("%i", &numbers[i]);
  99.     }
  100.  
  101.     int sum = getSum(numbers);
  102.     int min = getMax(numbers);
  103.     int max = getMin(numbers);
  104.     int avg = getAvg(10, sum);
  105.     int median = getMed(numbers);
  106.     sortArray(numbers);
  107.  
  108.     printf("\nMinimum: %i\n", min);
  109.     printf("\nMaximum: %i\n", max);
  110.     printf("\nSum: %i\n", sum);
  111.     printf("\nAverage: %g\n", avg);
  112.  
  113.     printf("\nSorted: ");
  114.     for(int i = 0; i < 10; i++) {
  115.         printf("%i ", numbers[i]);
  116.     }
  117.  
  118.     printf("\n\nMedian: %g", median);
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment