/* [] implement logTemperature() [x] take current loop iteration as argument [x] print "Enter temperature log #X:" [x] take temperature as int [x] if higher / lower than constants, print "Temperature X is impossible\n" [x] if higher / lower than constants, ask user again [x] if valid, print "Logged temperature: X degree Celsius\n" [x] implement calculateAbsoluteDifference() [x] take two int as argument [x] return absolute difference Example: Welcome to the temperature logger! Enter temperature log #1:-300 Temperature -300 is impossible Enter temperature log #1:30 Logged temperature: 30 degree Celsius Enter temperature log #2:20 Logged temperature: 20 degree Celsius Enter temperature log #3:50000 Temperature 50000 is impossible Enter temperature log #3:25 Logged temperature: 25 degree Celsius The difference of min/max values is 10 */ #include #define LOWEST_POSSIBLE_TEMPERATURE (-273) // absolute zero #define HIGHEST_POSSIBLE_TEMPERATURE (6000) // approx. temperature of sun's photosphere (of course, temperatures can get higher) #define MAX_ITERATION 3 int logTemperature(int current_iteration); int calculateAbsoluteDifference(int minimum, int maximum); int main(void) { printf("Welcome to the temperature logger!\n"); int cur_min = HIGHEST_POSSIBLE_TEMPERATURE; // initialize with highest value to find lower values int cur_max = LOWEST_POSSIBLE_TEMPERATURE; // initialize with lowest value to find high values for (int log_index = 0; log_index < MAX_ITERATION; ++log_index) { int temp = logTemperature(log_index + 1); // +1 to start with 1 instead of 0 if(temp < cur_min) { cur_min = temp; } if(temp > cur_max) { cur_max = temp; } } int diff = calculateAbsoluteDifference(cur_min, cur_max); printf("The difference of min/max values is %d\n", diff); return 0; } int calculateAbsoluteDifference(int minimum, int maximum) { return maximum - minimum; } int logTemperature(int current_iteration) { int temperature = 0; printf("Enter temperature log #%d:", current_iteration); scanf("%d", &temperature); if(temperature > HIGHEST_POSSIBLE_TEMPERATURE || temperature < LOWEST_POSSIBLE_TEMPERATURE) { printf("Temperature %d is impossible\n", temperature); temperature = logTemperature(current_iteration); } else { printf("Logged temperature: %d degree Celsius\n", temperature); } return temperature; }