解题思路以及注意事项:
本题主要是if语句的应用,本题有两次判断,if()里面一次,else if()里面一次,最后的else不用加括号判断,因为前面的都不执行,就执行else后面的语句了。
注意else后面不能加分号,不然会报错,注意if()和else if()后面不能加”;“。
注意1<=x<10的问题,好多新手都这样写,这在c里面是比较低级的错误,应该这样写 1<=x&&x<10
实例代码:
#include"stdio.h" int main(){ int x,y; scanf("%d",&x); if(x<1){ y=x; } else if(1<=x&&x<10){ y=2*x-1; } else{ y=3*x-11; } printf("%d",y); return 0; }
有什么不懂得可以在下方评论区评论
0.0分
168 人评分
可以直接用三个if吗? #include<stdio.h> int main() { int x,y; scanf("%d",&x); if(x<1) y=x; if(x>=1&&x<10) y=2*x-1; if(x>=10) y=3*x-11; printf("%d\n",y); return 0; }
可以直接写成三个if语句吗? #include<stdio.h> int main() { int x,y; scanf("%d",&x); if(x<1) y=x; if(x>=1&&x<10) y=2*x-1; if(x>=10) y=3*x-11; printf("%d\n",y); return 0; }
为什么不能直接1<=x<10,有什么错吗 ,求大神解答
ZJ龙 2019-01-26 20:58:26 |
这是数学,1<=x&&x<10这个就是c语言的语法。没有为什么,python 就可以
为什么说我这个答案错误; 我在编译软件上就可以运行啊; #include "stdio.h" void main() { int x,y; printf("请输入一个数:\n"); scanf("%d",&x); if(x<1) y=x; else if(x>=1&&x<10) y=2*x-1; else y=3*x-11; printf("%d\n",y); }
谢尚潇 2019-02-05 01:18:38 |
大哥,你和我写的一模一样,想一块了,哈哈
shxin 2019-02-13 17:47:11 |
没加花括号,花括号代表开始,你的编译器估计太老了,用的是什么呀?你参考一下我的代码
shxin 2019-02-13 17:47:23 |
#include<stdio.h> int main() { int x,y; scanf("%d",x); if(x<1) { y=x; } else if(1<=x&&x<10) { y=2*x-1; } else { y=3*x-11; } printf("%d",y); return 0; }
shxin 2019-02-13 17:48:01 |
不能空行自己去改一下
兔子先森 2019-04-23 20:11:51 |
不是你呢多了,人家题上面就没有提示的呢句话
为什么不能用y==2*x-1,
ThenSea 2018-12-19 21:10:46 |
"="代表“赋值”;“==”代表“相等”;明显“==”两边都是变量的话,是不可能相等的。
#include<stdio.h> int func1(int a) { int y; if(a<1) y=a; else if(a>=1&&a<10) y=2*a-1; else y=3*a-11; return y; } int main(void) { int num; printf("please enter a number!\n"); scanf("%d",&num); //func1(num); printf("%d\n",func1(num)); return 0; } 为什么答案错误呀,我测试了的,是可以算出正确答案的 !
shxin 2019-02-13 17:50:59 |
你好像没有定义a吧,int func1(int a)这括号里的是变量名不是定义整形变量a
#include<stdio.h> int main() { int x; scanf("%d",&x); if(x<1) {printf("%d\n",x);} else if(1<=x&&x<10) {printf("%d\n",2*x-1);} else {printf("%d\n",3*x-11);} return 0; }
#include<stdio.h> int main() { float x,y; scanf("%f",&x); if(x>=10) y=3*x-11; else if(x>=1) y=2*x-1; else y=x; printf("%f",y); return 0; } 想知道为什么这样不行?我上机测试过是可以的,为什么这样逆着写就是错误的?
hong豪 2019-02-23 11:37:51 |
当然可以,不过我觉得if里面的条件可以改成x<1,那么下一个条件就可以写成x<10,这样可以化简条件
兔子先森 2019-04-23 20:10:13 |
还可以用三个if啊