#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,A,p,
scanf("%lf %lf %lf",&a,&b,&c); //Output is put in integers
p = (a+b+c)/2;
A = sqrt(p*(p-a)*(p-b)*(p-c));
printf("Area of triangle is %lf",A);
//The output is coming out to be -nan for some inputs.
return 0;
}
-1
A
回答
0
double a,b,c,A,p;
你忘了; ?
如果你想给printf float或double您使用%F不会%LF
printf("Area of triangle is %f",A);
您使用%LF只为一个浮动或双输入,输出使用%F
另一件事可能是sqrt()是负数。
+2
对于['printf'](http://en.cppreference.com/w/c/io/fprintf)格式''%lf“'和'”%f“'做同样的事情。 –
3
对于输入
1.0 2.0 5.0
你
p = 4.0
p - a = 3.0
p - b = 2.0
p - c = -1.0 // notice the sign
所以你最终
sqrt(-24.0) // ups... sqrt of a negative number
因此你-nan
也许你应该使用fabs
摆脱负面价值。
BTW:nan
表示 “不是一个数字” - 见https://en.wikipedia.org/wiki/NaN
BTW:经常检查由scanf
返回的值,以确保它实际扫描预期的数值,即
if (scanf("%lf %lf %lf",&a,&b,&c) != 3)
{
// Input failure - add error handling...
// For instance:
printf("Illegal input - please provide 3 double as input\n");
return -1;
}
相关问题
- 1. 为什么输出(Nan,Nan)?
- 2. ParseFloat输出为NaN
- 3. 输出是“NaN”
- 4. 函数输出= NAN
- 5. 将NaN值写入MongoDB输出 - Pentaho
- 6. 为什么我的输出Undefined或NaN?
- 7. 找不到为什么numpy.log10输出nan?
- 8. 为什么jQuery减法输出NaN?
- 9. 为什么cout会给'nan'输出?
- 10. 函数将输出nan而不是数字,为什么?
- 11. C编程nan输出
- 12. KissFFT输出返回nan值?
- 13. 为什么scipy.stats.bartlett的Bartlett测试给出了nan作为输出?
- 14. 输入栏显示为NaN
- 15. 为什么我一直把Nan作为输出?
- 16. 添加输出即将楠angularjs
- 17. 从html5输出中删除NaN
- 18. Theano随机梯度下降NaN输出
- 19. 数组因子。获得NaN输出。 Javascript
- 20. 不能确定NaN输出的原因
- 21. XSLT - 格式编号输出NaN
- 22. 所有的Tensorflow输出都是nan
- 23. 将所见即所得的输出HTML转换为斜杠
- 24. 将NaN定义为0
- 25. JavaScript:将NaN转换为0
- 26. 将nan值转换为零
- 27. 将NaN编码为JSON
- 28. NaN作为kernlab的高斯过程预测的输出
- 29. 我的代码正在生成一个输出“NaN”。为什么?
- 30. 为什么这个浮球联合NaN的输出?
输入值?顺便说一句 - 总是检查'scanf'返回的值,即它返回3在你的情况? – 4386427
您的输入是什么?你的预期产出是多少?你的实际产出是多少? ***作为文本***复制粘贴到问题主体中。另请[请阅读如何提出好问题](http://stackoverflow.com/help/how-to-ask)。我还建议您花一些时间阅读Eric Lippert的[如何调试小程序](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/),并学习如何使用调试器。 –
查看['sqrt']的文档(http://en.cppreference.com/w/c/numeric/math/sqrt),发现该函数返回'nan'(不是数字)平方根无法计算,即负数。所以你的输入值可能会产生一个负数,你试图计算其平方根。虽然我只能猜测,因为你没有提供包括你的用户输入的[mcve]。 – muXXmit2X