Moortiii icon

hand-in_3_1

Moortiii | PRO | 09/08/17 09:02:37 PM UTC | 0 ⭐ | 370 👁️ | Never ⏰ | []
C |

3.15 KB

|

None

|

0 👍

/

0 👎

#include <stdio.h>
 
#define TRUE 1
#define FALSE 0
 
int getMax(int numbers[]);
int getMin(int numbers[]);
int getSum(int numbers[]);
float getAvg(int count, int sum);
void sortArray(int numbers[]);
float getMed(int numbers[]);
 
int getMax(int numbers[]) {
    int high = numbers[0];
    for(int i = 0; i < 10; i++) {
        if(numbers[i] > high) {
            high = numbers[i];
        }
    }
    return high;
}
 
int getMin(int numbers[]) {
    int low = numbers[0];
    for(int i = 0; i < 10; i++) {
        if(numbers[i] < low) {
            low = numbers[i];
        }
    }
    return low;
}
 
int getSum(int numbers[]) {
    int sum = 0;
    for(int i = 0; i < 10; i++) {
        sum += numbers[i];
    }
    return sum;
}
 
float getAvg(int count, int sum) {
    int average = sum / count;
    return average;
}
 
/* https://www.lynda.com/C-tutorials/Using-loops-searching-sorting/164457/180402-4.html */
void sortArray(int numbers[]) {
    int swapped;
    do {
        swapped = FALSE;
        for (int i = 1; i < 10; i++) {
            int temp = numbers[i];
            // If the current pair is out of order
            if (numbers[i - 1] > numbers[i]) {
                // Swap the integers in numbers[i-1] and numbers[i]
                temp = numbers[i - 1];
                numbers[i-1] = numbers[i];
                numbers[i] = temp;
                // Notify the loop that something has changed in the array
                swapped = TRUE;
            }
        }
    } while(swapped == TRUE);
}
 
/* I would prefer to do something like this: int sortedArray[10] = sortArray(numbers);
 * but I don't think it's possible to return an array from a function. Ask the teacher */
 
float getMed(int numbers[]) {
    int swapped;
    do {
        swapped = FALSE;
        for (int i = 1; i < 10; i++) {
            int temp = numbers[i];
            // If the current pair is out of order
            if (numbers[i - 1] > numbers[i]) {
                // Swap the integers in numbers[i-1] and numbers[i]
                temp = numbers[i - 1];
                numbers[i-1] = numbers[i];
                numbers[i] = temp;
                // Notify the loop that something has changed in the array
                swapped = TRUE;
            }
        }
    } while(swapped == TRUE);
 
    // We know that the array has ten elements exactly
    // Therefore index 4 + 5 are the middle numbers
    float median = (numbers[4] + numbers[5] / 2);
 
    return median;
}
 
int main() {
    int numbers[10];
    printf("Please enter 10 integers:\n\n");
    for(int i = 0; i < 10; i++) {
        scanf("%i", &numbers[i]);
    }
 
    int sum = getSum(numbers);
    int min = getMax(numbers);
    int max = getMin(numbers);
    int avg = getAvg(10, sum);
    int median = getMed(numbers);
    sortArray(numbers);
 
    printf("\nMinimum: %i\n", min);
    printf("\nMaximum: %i\n", max);
    printf("\nSum: %i\n", sum);
    printf("\nAverage: %g\n", avg);
 
    printf("\nSorted: ");
    for(int i = 0; i < 10; i++) {
        printf("%i ", numbers[i]);
    }
 
    printf("\n\nMedian: %g", median);
    return 0;
}

Comments