c语言 分段函数求值有如下分段函数F(x) = x^2 + 1 当x> 0时;F(x) = -x 当x

edtrkrtk 1年前 已收到1个回答 举报

huyin520 幼苗

共回答了20个问题采纳率:95% 举报

你这个题是ACM的题目?我看了下你的程序,正经的数字是可以的,但你说错了,那就该就是要考虑极限情况了.譬如x=0.0000000000000000000000000000000001的时候,你的程序输出是100.0.应该就是出错在这里了.
还有我的老师告诉我,使用float不要用x==0这种表达方式,因为float类型的等于其实就是在有限的位数上比较大小.当数字极小或者极大的时候就会出现不相等的数字会出现相等的情况了.
换成double就行了
#include "stdio.h"
void main()
{
double a=0.0;
while(scanf("%lf",&a)!=EOF)
{
if(a>0)
{
a=a*a+1;
}
else if(a

1年前 追问

8

edtrkrtk 举报

我会永远记住0.000000000000000000000000000000001和0是有差距的。 谢谢你!又不懂得还会再问你的。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 3.274 s. - webmaster@yulucn.com