if分类讨论

王新港 2016-03-25 03:18:50
#include<stdio.h>
main(){
int x,y;
scanf("%d",&x);
if(x<0)
y=0;
if(0<=x<10)
y=x;
if(10<=x<20)
y=10;
if(20<=x<=40)
y=20-0.5x;
printf("%d",y);
}
这段代码运行错误
求改进
...全文
137 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灸舞 2016-03-25
  • 打赏
  • 举报
回复
楼主可以改成下面那样,先判断最小的,X如果小于0就执行第一个if,如果不满足小于0,那么必定是>=0的,然后判断下个if 直接判断是否小于10就行了,不需要再判断是否大于等于0(之后的同理)

#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 = 20 - 0.5 * x;
	printf("%d\n", y);
}
paschen 2016-03-25
  • 打赏
  • 举报
回复
0<=x<10 在 程序里要写成 x>=0 && x<=10,同理下面那几个
paschen 2016-03-25
  • 打赏
  • 举报
回复
0.5x 在程序里要写成: 0.5 * x
cocoabird 2016-03-25
  • 打赏
  • 举报
回复
#include<stdio.h>
main(){
int x,y;
scanf("%d",&x);
 if(x<0)
   y=0;
 if(0<=x && x<10)
   y=x;
  if(10<=x && x<20)
   y=10;
  if(20<=x && x<=40)
   y=20-0.5*x;
   printf("%d\n",y);
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧