我编写的源代码(请记住,我是一名新手,所以我目前正在通过一本书来自学。)
一切似乎都可行,但是代码似乎忽略了“ if(fahrenheit> = 80)语句。它与第一个语句参数一起使用,但是对于高于79和低于50的所有数字,它将跳转到else条件,而不是比为80以上的值输出不同的文本。
建议?
#include <iostream>
float convert(float);
int main()
{
float fahrenheit;
float celsius;
std::cout << "Please enter the temperature in Celsius: ";
std::cin >> celsius;
fahrenheit = convert(celsius);
std::cout << "\nThe temperature in Fahrenheit is: " << fahrenheit << "\n";
if ((fahrenheit <= 79) && (fahrenheit >= 50))
{
if (fahrenheit >= 80)
{
std::cout << "\n What a hot day!\n";
return 0;
}
std::cout << "\n What a nice day!\n";
}
else
std::cout << "\n It's freezing!\n";
return 0;
}
float convert(float celsius)
{
float fahrenheit;
fahrenheit = ((celsius * 9) / 5) +32;
return fahrenheit;
}
答案 0 :(得分:3)
if (fahrenheit >= 80)
语句不会被忽略,这是不可能的。如所写,仅在fahrenheit <= 79
和fahrenheit >= 50
都为真的情况下才检查该子句。如果fahrenheit
必须在50到79之间(含50和79),怎么能大于或等于80?
您可能是这个意思:
if ((fahrenheit <= 79) && (fahrenheit >= 50))
{
std::cout << "\n What a nice day!\n";
} else if (fahrenheit >= 80)
{
std::cout << "\n What a hot day!\n";
}