扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
你只给出了X的取值范围,函数表达式呢,怎么没有给出?
成都创新互联公司2013年成立,先为龙陵等服务建站,龙陵等地企业,进行企业商务咨询服务。为龙陵企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
我假设这样:
Y=X (X〈-1)
Y=1(-1〈=X〈=1)
Y=X*X(X〉1)
用C语言实现,输入X的值,求Y的值,那么可以表示为:
int function(int x)
{
int y;
if(x-1)
{
y=x;
}
else if((x=-1)(x=1))
{
y=1;
}
else
{
y=x*x;
}
return y;
}
#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;
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流