大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我想问你个问题:你是不是用x = -1测试的??
创新互联公司自2013年起,先为郴州等服务建站,郴州等地企业,进行企业商务咨询服务。为郴州企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
那么y = x-1 跟 y = 2x的结果不是一样么,都是-2啊。。。不要因此得出结论x=-1的时候y=2x
另外,你这个函数如果用if就全用if,如果用if--else-if,就全部这样,不要混合用,很乱。
建议都用if--else if,这样能够看出是一个分段函数。
写法1
if (x-5 x0) y = x;
if (x == 0) y=x-1;
if (x0 x10) y = x+1;
写法2
if (x-5 x10)
{
y=x; //在这个范围,不论怎样,先把y赋值为x
if (x=0) //在这个范围,需要对y值做修改
{
y = y-1; //先把y-1再说,对应x=0的情况,如果x!=0,那么我们再次修改
if(x0)
y = y+2; //刚刚y-1了,所以需要+2
}
}
写法3,终于是正常点的做法了
if (x-5 x0) y=x;
else
{
if (x10)
{
if (x==0) y=x-1;
else y=x+1;
}
}
写法4
switch(x)
{
case 0:
y=x-1;
break;
case -4;
case -3;
case -2;
case -1;
y=x;
break;
case 1;
case 2;
case 3;
case 4;
case 5;
case 6;
case 7;
case 8;
case 9;
y=x+1;
break;
}
帮你改了下代码,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;//缺少分号
}
#include "stdio.h"
#includemath.h
void main()
{
double x,y,f,h;
printf("请输入x:\n");
scanf("%lf",x);
printf("请输入y:\n");
scanf("%lf",y);
if((x=0)(y0))
f=2*pow(x,2)+3*x+1/x+y;
else if((x=0)(y=0))
f=2*x*x+3*x+1/x+y*y;
else
f=3*sin(x+y)/2/pow(x,2)+3*x+1;
printf("x=%lf,y=%lf,f=%lf\n",x,y,f);
h=pow(x,2);
printf("%lf",h);
}