#include stdio.h/*
创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目成都网站制作、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元乌苏做网站,已为上家服务,为乌苏各地企业和个人服务,联系电话:18980820575
编写一个程序,使得可以根据用户输入数值求下列分段函数的值。
(1) 当x0时,y=-x;(2) 当x10时,y=3x+5;(3) 当x为其他值时, y=2x-1。*/
int main(int argc, char *argv[])
{
int iX;
int iY; printf("Please input x:");
scanf("%d", iX);
fflush(stdin); //容错处理 if(iX 0)
{
iY = -iX;
} else if(iX 1)
{
iY = 3*iX + 5;
} else
{
iY = 2*iX - 1;
} printf("y=%d\n", iY);
return 0;
}
你的C语言程序中,else if的判断条件都不对,比如在C语言中1=x10应该改成1=xx10以此类推,其它两个也都不对,10=x30,应该改成10=xx30 ,30=x=60应该改成30=xx=60,就对了.
完整的更改后的C语言程序如下(改动的地方见注释)
#includestdio.h
int main()
{
int x,y;
printf("输入x的值:");
scanf("%d",x);
if (x1)
{
y=x;
}
else if (1=x x10) //这里改一下
{
y=2*x-1;
}
else if (10=x x30) //这里改一下
{
y=3*x-1;
}
else if (30=x x=60) //这里改一下
{
y=4*x-2;
}
else
{
y=5*x;
}
printf("y的值为:%d\n",y);
return 0;
}
帮你改了下代码,VC6测试通过,自己看看吧。
#includestdio.h
int main()
{
float x,y;//根据给定的测试用例,x,y应该为float型
scanf("%f",x);//x为float型,所以改为%f
if(x20)
{
y=x+100;
}
else if(x=20x=100)
{
y=x;
}
else
y=x-100;
printf("x=%f,y=%f\n",x,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 int main(){ int x,y; printf("请输入一个X的值:"); scanf("%d",x); if(x==0) y=x=0; else if(x0) y=x=1; else if (x0) { y=x=1; printf("x=%d,y=%d",x,y); } else if (x0) { y=x=-1; printf("x=%d,y=%d",x,y); } return 0; }//还有哦,=是贬值,==是判断,你看看你的判断是=,呵呵,是错误的哦。//:对,就是这样,这个意思