永发信息网

根据下面函数关系,对输入的每一个x,计算相应的y值,要求用C语言编写。

答案:3  悬赏:0  手机版
解决时间 2021-05-20 01:01
  • 提问者网友:谁的错
  • 2021-05-19 09:55

X<0 Y=0;10<X<=20,Y=10:

0<X<=10,Y=X;20<X<40,Y=-0.5X+20:

要求用C语言编写~~

最佳答案
  • 五星知识达人网友:何以畏孤独
  • 2021-05-19 10:04

条件应该是:


x<0时 y=0; 0<x<=10时 y=x; 10<x<=20时 y=10; 20<x<40时 y=-0.5*x+20;


帮你用if else 和switch语句各写了个. 你看看.


用if else结构:


#include <stdio.h>


int main()
{
int x,y;
scanf("%d",&x);
if(x<0) y=0;
else if(x<=10) y=x;
else if(x<=20) y=10;
else if(x<40) y=-0.5*x+20;


printf("y=%d\n",y);
return 0;
}



用switch case语句:


#include <stdio.h>


int main()
{
int x,y;
scanf("%d",&x);
if(x<0) y=0;
else
{
switch(x/10) {
case 0:
y=x; break;
case 1:
if(x==10) y=x;
else y=10;
break;
case 2:
if(x==20)
{
y=10; break;
}
case 3:
y=-0.5*x+20; break;
}
}
printf("y=%d\n",y);
return 0;
}

全部回答
  • 1楼网友:煞尾
  • 2021-05-19 12:18

#include<stdio.h> void main() { float x,y; printf("please input x :\n"); scanf("%f",&x); if(x<0) y=0; else if(x<=10) y=x; else if(x<=20) y=10; else if (x<40) y=-x/2+20; else ; printf("y=%f",y); }

刚刚写的,要是你要x>=40有什么结果的话,在最后一个else后加东西就是了

  • 2楼网友:怀裏藏嬌
  • 2021-05-19 10:43

y=x<0?0:(x<=10?x:(x<=20?10:(x<40?-0.5*x+20:_____)));

上面的横线是因为大于等于40的情况你没有限定。如果已知X肯定小于40,那么最后一个判断可以去掉:

y=x<0?0:(x<=10?x:(x<=20?10:-0.5*x+20));

这看上去很乱。再多的话可以用if写了。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯