c - 否则,如果选项 3 没有产生答案……我做错了什么?

标签 c if-statement user-defined-functions equation udf

<分区>

程序运行了,但我不明白为什么第三个函数 else if 语句没有返回准确的值。感谢您在
中的帮助 提前。

finaltemp = newtemp(t, choice);

printf("\nThe converted temperature is: %f", finaltemp);

return(0);
}

double newtemp(double a, double b)
{
double result;
if (b==1)
  {
    result = (a-(273.15));
  }
if (b==2)
  {
    result = (a+(273.15));
  }
if (b==3)
  {
    result = (((5/9)*(a))-32);
  }
if (b==4)
  {
    result = (((9/5)*(a))+32);
  }
if (b==5)
  {
    result = (((9/5)*(a))-459.67);
  }
if (b==6)
  {
    result = ((a+459.67)*(9/5));
  }

 return(result);
 }

最佳答案

您执行的是整数除法,而不是 float 除法。

表达式 (5/9) 将两个 int 值相除,所以结果是一个 int,具体来说是 0。你需要使用强制浮点除法的浮点常量。

if (b==3)
  {
    result = (((5.0/9.0)*(a))-32);
  }
if (b==4)
  {
    result = (((9.0/5.0)*(a))+32);
  }
if (b==5)
  {
    result = (((9.0/5.0)*(a))-459.67);
  }
if (b==6)
  {
    result = ((a+459.67)*(9.0/5.0));
  }

关于c - 否则,如果选项 3 没有产生答案……我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38810491/

相关文章:

c - DBus:使用直接 dbus API 测量数据交换的时间

c - 将数组及其长度变量包装在 C 的结构中是最佳实践吗?

Python变量条件测试失败

javascript - 为什么有些 if 语句规则不起作用?

sql - udf 与直接 sql 性能

arrays - 如何编写 VBA 用户定义函数以使用 ctrl+shift+enter 从 IF 获取数组参数?

sql-server - 如何在 T-SQL 表值函数中切换语言

c - 有没有让我查看下一个字符的函数?

c++ - 函数返回指针分配错误

PHP if/else 开关不工作