扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
当x0且 x≠3 时 y=x*x +x-6
创新互联是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十余年时间我们累计服务了上千家以及全国政企客户,如三维植被网等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致表扬。
当 0=x0且x≠2及x≠3时 y=x*2-5x+6
当 x=其他 时 y=x*2-x-1
请问楼主,这是怎么分段的?当x0且 x≠3?x0还用且x不等于3吗?0=x0?什么数不但大于等于0而且小于0?
#includestdio.h
#includemath.h
void main()
{
float x,y;
scanf("%f",x);
if(x0x!=3)
y=x*x+(x-6);
else if(x=0x!=2x!=3)
y=x*x-(5*x)+6;
else
y=x*x-x-1;
printf("%f",y);
}
你好,你这样写肯定是的,我给你分析一下,当程序执行到第一个if时要判断if语句的条件,假设满足条件则执行了语句1,这是对的,是吧,例如你求的是y的值,假设语句1是y=x+1,则第一个if语句执行完后y=x+1;接着执行第二个if语句,此时肯定是不满足if的条件的是吧?(因为满足了第一个就不会再满足第二个),所以就要执行第二个if的第二个语句即else语句,假设语句3为y=y+2,则最终的结果就是y=y+2,也就是语句3.所以在这样的情况下,你一定要排除你已经用过的情况不能再使用,所以只需改为: if() 语句1;else if() 语句2; else 语句3;即可。
写法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;
}
你确定y也是0-40间的整数吗?如果是的话,那么该分段函数中的第三段计算的结果已经超出了数值范围啊;如果y的取值没有限制,那么程序如下:
#include
void
main
()
{
int
x,y;
scanf("%d",x);
if(x=0x10)
y=x;
else
if(x=10x20)
y=10;
else
if(x=20x40)
y=x*x+3;
else
{
printf("error:x不是0-40之间的整数!\n");
return;
}
printf("%d\n",y);
}
#include
int main()
{
int x,y;
scanf("%d",x);
if(0xx10) y=3*x+2;
else
{if(x=0) y=0;
else
{if (x0) y=x*x;
else printf("go die\n");
}
}
printf("%d",y);
return 0;
}该程序的分段函数如下:
f(x)=3x+2 (0x10)
f(x)=1 (x=0)
f(x) = x*x (x0)
#include stdio.h
#include math.h
void main()
{
float x;
double y;
printf("Please input the value of x:");
scanf("%f",x);
if(x=-10x=4)
{
y=fabs(x-2);
printf("y=%.2f\n",y);
}
else if(x=5x=7)
{
y=x+10;
printf("y=%.2f\n",y);
}
else if(x=8x=12)
{
y=pow(x,4);
printf("y=%.2f\n",y);
}
else
printf("No answer\n");
}
#include "stdio.h"
#include "math.h"
int main(int argc,char *argv[]){
double x,y;
printf("Input x(R:)...\nx=");
scanf("%lf",x);
if(x5)
y=-x+3.5;
else if(x=5 x10)
y=20-3.5*pow(x+3,7);//这里看着像7,是几就把7改成几
else
y=-3.5+sin(x);
printf("y = %g\t(x==%g)\n",y,x);
return 0;
}
运行样例:
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流