#include stdio.h
目前创新互联已为数千家的企业提供了网站建设、域名、网站空间、网站托管、企业网站设计、奉化网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
#include math.h
int main()
{
double x,y;
printf("input x:\n");
scanf("%lf",x);
if (x -1.0) y=x*x*x-1;
else if (x =-1 x = 1) y=-3*x+1;
else if (x1 x =10) y=3*exp(2*x-1)+5;
else y = 5*x + 3.0* log10(2*x*x-1) -13;
printf("%.2lf\n",y);
return 0;
}
#include stdio.h
int main()
{double x,y;
scanf("%lf",x);
if(x0)y=x*x-1;
else if(x1)y=x*x;
else y=x*x+1;
printf("%g",y);
return 0;
}
你这个题是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(a0)
{
a=a*a+1;
}
else if(a0)
{
a=-a;
}
else if(a==0)
{
a=100.0;
}
printf("%.1lf\n",a);
a=0.0;
}
}