C 我的if-else语句有什么问题?
这段代码的功能几乎完美,但它似乎忽略了我的if-else语句。这个程序的目标是只转换-100和100之间的温度,但出于某种原因,我的代码仍然在转换输入的任何数字。这是令人沮丧的,因为我尝试了几种不同的方法,但程序从不转到else语句,总是运行if语句,即使我输入了10000。谢谢,如有任何建议,将不胜感激C 我的if-else语句有什么问题?,c,if-statement,input,printing,conditional-statements,C,If Statement,Input,Printing,Conditional Statements,这段代码的功能几乎完美,但它似乎忽略了我的if-else语句。这个程序的目标是只转换-100和100之间的温度,但出于某种原因,我的代码仍然在转换输入的任何数字。这是令人沮丧的,因为我尝试了几种不同的方法,但程序从不转到else语句,总是运行if语句,即使我输入了10000。谢谢,如有任何建议,将不胜感激 double converter() { float C, F, S; int input; printf ("Please enter a temperature in Fah
double converter()
{
float C, F, S;
int input;
printf ("Please enter a temperature in Fahrenheit:");
scanf ("%f", &F);
if (F > -100 || F < 100) {
C = FCR * (F -32);
printf ("%f F ==> %f C ", F, C);
printf ("%f", F);
}
else {
F = pow(C, 3);
printf ("Invalid Fahrenheit temperature.");
}
}
目前,您的if条件将接受任何高于-100或低于100的法伦海特温度。这意味着每个temperarure都会进入if语句。您可能打算使用,而不是:
if (F > -100 && F < 100) {
// logic here
}
将| |改为&&它就会起作用。 如果| |的一侧为真,则输入If。 1000确实大于-100
再来一张。C是未初始化的。仅当if中的表达式的计算结果为true时,才为其赋值。但在其他情况下,在未初始化时使用C。始终检查scanf的返回值。C在else claus中未初始化,设置F=C^3有什么意义呢?如果F为150,则F<100为真,因为150>-100谢谢,我没有意识到这里的逻辑是错误的