Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我的if-else语句有什么问题?_C_If Statement_Input_Printing_Conditional Statements - Fatal编程技术网

C 我的if-else语句有什么问题?

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

这段代码的功能几乎完美,但它似乎忽略了我的if-else语句。这个程序的目标是只转换-100和100之间的温度,但出于某种原因,我的代码仍然在转换输入的任何数字。这是令人沮丧的,因为我尝试了几种不同的方法,但程序从不转到else语句,总是运行if语句,即使我输入了10000。谢谢,如有任何建议,将不胜感激

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谢谢,我没有意识到这里的逻辑是错误的