Most people know that the average human body temperature is 98.6 Fahrenheit (F). However, body temperatures can reach extreme levels, at which point the person will likely become unconscious (or worse). Those extremes are below 86 F and above 106 F.
Write a program that asks the user for a body temperature in Fahrenheit (decimals are ok). Check if that temperature is in the danger zone (for unconsciousness) or not and produce the relevant output shown below. Also check if the user entered a number greater than zero. If they didn't, display an error message and don't process the rest of this program.
If the entry was valid, convert the temperature from Fahrenheit to Celsius. and output it to the user.
F to C formula: (temp - 32) * 5 / 9
Prompts:
Enter a body temperature in Fahrenheit:
Possible Outputs:
This person is likely unconscious and in danger
Temperature in Celsius is: 41.6667
This person is likely conscious
Temperature in Celsius is: 37
Invalid entry
Notes and Hints:
1) This exercise is testing your knowledge of Flags and Logical Operators. Use both!
2) Do not use constants for the numbers in the F to C formula. Write it as-is.
3) Hint: The order in which you do your decision/conditional statements makes all the difference
4) Remember: Do not let this program do any math if the user's entry is invalid!
#include <iostream>
using namespace std;
#define EXTREME_LOW 86
#define EXTREME_HIGH 106
int main() {
double temperatureF;
double tempertureC;
bool inDanger = false;
cout << "Enter a body temperature in Fahrenheit: ";
cin >> temperatureF;
if ( temperatureF <= 0 ) {
cout << "Error: the temperature must be a positive number greater than zero";
return 0;
}
if ( temperatureF < EXTREME_LOW || temperatureF > EXTREME_HIGH ) {
inDanger = true;
}
tempertureC = (temperatureF - 32) * 5 / 9;
if ( inDanger == true ) {
cout << "This person is likely unconscious and in danger\nTemperature in Celsius is: " << tempertureC;
} else {
cout << "This person is likely conscious\nTemperature in Celsius is: " << tempertureC;
}
return 0;
}
Comments
Leave a comment