【问题标题】:Why is my qForm variable -nan when printed为什么打印时我的 qForm 变量 -nan
【发布时间】:2021-09-19 05:24:43
【问题描述】:

这是我的代码:

#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;

double qFormula(double a, double b, double c){
  double result;
  result = (-b + sqrt(pow(b, 2) - (4 * a * c))) / (2 * a);
  result = round(result * 100) / 100;
  return result;
}

int main() {
  double a, b, c, x, y;
  cout << "Please enter a(a != 0), b, c, x, y, respectively, \nseparate with space: ";
  cin >> a >> b >> c >> x >> y;
  cout << "√(x+y) = " << sqrt(x + y) << endl;
  double qForm = qFormula(a, b, c);
  cout << "Quadratic Formula = " << qForm << endl;
  cout << "x^(y+7) = " << pow(x, y + 7) << endl;
  return 0;
}

问题是,当我尝试直接打印函数或将函数存储到变量中时(如图所示),它会打印出“二次公式= -nan”。

请帮帮我,非常感谢。

【问题讨论】:

  • 你输入的是什么?是否是导致负数传递给sqrt() 的输入?
  • 哦,这就是为什么...是的,我忘了检查我的输入,我会解决的。非常感谢!!!

标签: c++ nan


【解决方案1】:

基本上,这是一个输入问题,要解决这个问题,要么在输入之前限制/检查输入,要么使用 fabs() 确保 sqrt() 函数接收到正值。

【讨论】:

  • 如果您想获得正确答案,我认为“使用 fabs()”不是一个好的一般建议。在您的二次公式中,“不是数字”(nan)是正确的,更改符号会产生错误的结果。
猜你喜欢
  • 2020-02-28
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
  • 2011-11-25
  • 2020-06-17
  • 2015-01-29
  • 2017-11-19
  • 1970-01-01
相关资源
最近更新 更多