扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#include stdio.h
创新互联-专业网站定制、快速模板网站建设、高性价比宣化网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式宣化网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖宣化地区。费用合理售后完善,十年实体公司更值得信赖。
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;
}
}
# include stdio.h
# include math.h
void main()
{
int x;
int y;
while(1)
{
printf("input x:\n");
scanf("%d",x);
if(x-2)
{
y=7-2*x;
}
else if(x=-1 x3)
{
y=5-abs(3*x+2);
}
else
{
y=3*x+4;
}
printf("y is %d\n\n",y);
}
}
这样就可以了,望采纳!
#includestdio.h
#includemath.h
int main()
{
int mark = -1;
float x,y;
scanf("%f",x);
if(x -2.0)
{
mark = 0;
}
else if(x = 3.0)
{
mark = 2;
}
else
{
mark = 1;
}
switch(mark)
{
case 0 : y = 7.0 - 2 * x; break;
case 1 : y = 5.0 - fabs(3 * x + 2.0); break;
case 2 : y = 3 * x + 4.0; break;
default: mark = 100;
}
if(mark == 100)
{
printf("error\n");
return 0;
}
printf("%f\n",y);
return 0;
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流