138 lines
2.9 KiB
C
138 lines
2.9 KiB
C
/* Name: Garrett Haldrup
|
|
# lab11.c
|
|
# Purpose: Solves problems assigned in Lab 11
|
|
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <math.h>
|
|
#include <assert.h>
|
|
|
|
float findMax(float array[], int n);
|
|
float findMin(float array[], int n);
|
|
float getMean(float array[], int n);
|
|
float getStd(float array[], int n);
|
|
void raiseWages(float wages[], float raises[], int n);
|
|
void printArray(float array[], int n);
|
|
|
|
int main() {
|
|
|
|
printf("This program will calculate the max, min, mean, and std of a number set\n");
|
|
printf("It will also update a wages array through a function call\n\n");
|
|
|
|
float result;
|
|
|
|
float testFloats[] = {85, 93.3, 90.5};
|
|
|
|
float wages[] = {15.00, 14.75, 15.00, 19.50, 13.00};
|
|
float raises[] = { 1.00, 2.00, 1.50, 0.00, 1.50};
|
|
|
|
float newWages[] = {16, 16.75, 16.5, 19.5, 14.5};
|
|
|
|
|
|
int testFloatSize = sizeof(testFloats)/sizeof(testFloats[0]);
|
|
|
|
int wageSize = sizeof(wages)/sizeof(wages[0]);
|
|
|
|
|
|
|
|
result = findMax(testFloats, testFloatSize);
|
|
assert(result - 93.3 <= 0.001);
|
|
printf("Max of set is: %.1f\n", result);
|
|
printf("Pass!---------------------------------------------------\n");
|
|
|
|
result = findMin(testFloats, testFloatSize);
|
|
assert(result - 85.0 <= 0.001);
|
|
printf("Min of set is: %.1f\n", result);
|
|
printf("Pass!---------------------------------------------------\n");
|
|
|
|
result = getMean(testFloats, testFloatSize);
|
|
assert(result - 89.6 <= 0.001);
|
|
printf("Mean of set is: %.1f\n", result);
|
|
printf("Pass!---------------------------------------------------\n");
|
|
|
|
result = getStd(testFloats, testFloatSize);
|
|
assert(result - 3.4477 <= 0.001);
|
|
printf("Std of set is: %.1f\n", result);
|
|
printf("Pass!---------------------------------------------------\n");
|
|
|
|
printf("\n");
|
|
|
|
raiseWages(wages, raises, wageSize);
|
|
|
|
for (int i = 0; i < wageSize; i++) {
|
|
printf("wages[%d] = %.2f = %.2f\n", i, wages[i], newWages[i]);
|
|
assert(wages[i] - newWages[i] <= 0.000001);
|
|
printf("Pass!---------------------------------------------------\n");
|
|
}
|
|
|
|
printArray(wages, wageSize);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
float findMax(float array[], int n) {
|
|
float max = array[0];
|
|
|
|
for (int i = 1; i < n; i++) {
|
|
if (array[i] > max) {
|
|
max = array[i];
|
|
}
|
|
}
|
|
|
|
return max;
|
|
}
|
|
|
|
float findMin(float array[], int n) {
|
|
float min = array[0];
|
|
|
|
for (int i = 1; i < n; i++) {
|
|
if (array[i] < min) {
|
|
min = array[i];
|
|
}
|
|
}
|
|
|
|
return min;
|
|
}
|
|
|
|
float getMean(float array[], int n) {
|
|
float sum = 0;
|
|
|
|
for (int i = 0; i < n; i++) {
|
|
sum += array[i];
|
|
}
|
|
|
|
return sum / n;
|
|
}
|
|
|
|
float getStd(float array[], int n) {
|
|
float sum = 0;
|
|
float mean = getMean(array, n);
|
|
|
|
for (int i = 0; i < n; i++) {
|
|
sum += pow(array[i] - mean, 2);
|
|
}
|
|
|
|
return sqrt(sum / n);
|
|
}
|
|
|
|
void raiseWages(float wages[], float raises[], int n) {
|
|
|
|
for (int i = 0; i < n; i++) {
|
|
wages[i] += raises[i];
|
|
}
|
|
}
|
|
|
|
void printArray(float array[], int n) {
|
|
printf("{%.2f", array[0]);
|
|
for (int i = 1; i < n; i++) {
|
|
printf(", %.2f", array[i]);
|
|
}
|
|
printf("}\n");
|
|
}
|