解题思路以及注意事项:
本题主要是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 人评分
我也想知道哪里错了 #include<stdio.h> main() { int x; float y; printf("x="); scanf("%d",&x); printf("\n"); if(x<1) { y=x; printf("y=%0.2f",y); } if(1<=x&&x<10) { y=2*x-1 ; printf("y=%0.2f",y); } if(x>=10) { y=3*x-11; printf("y=%0.2f",y); } }
#include<stdio.h> int main() { int x,y,z; scanf("%d",&x); if(x < 1) printf("%d",x); else if(x >= 1 && x < 10) printf("%d", 2x - 1); else printf("%d", 3x - 11); return 0; } 大佬看一下为什么是错的
夜来梦星寒 2021-05-19 16:12:55 |
2x改为2*x,3x改为3*x试试呢?
求问 我定义的float型 为什么不行 谢谢!
if(1<=x<10)与if(x >= 1 && x < 10)有什么区别
AkMoney 2021-02-08 22:51:41 |
1 <= x <= 10这个肯定是true 因为1 <= x 是0或者1 即(1<=x) <= 10这个肯定是成立的 if(1<=x&&x<=10) 就能判断x介于1到10了
AkMoney 2021-02-08 22:52:28 |
我刚开始也那样写了if(1<=x<10),可以运行,但是代值就会错啦!
暴vv 2021-03-08 14:34:12 |
知道这样写1<=x<10不成立就行了
易生 2021-04-23 22:54:49 |
第二种写法才是对的
MV 2021-05-13 23:26:56 |
我觉得这个说法好理解一些 if(0<x<1) 这个表达式是先让0和x比较 0<x这个表达式的值不是0就是1 然后再用这个结果和1比较 if(x>0&&x<1)这个才是判断x是不是在0和1之间的
#include<stdio.h> int main() { float x,y; scanf("%f",&x); if(x < 1) { y = x; printf("%f",y); } else if(x >= 10) { y = 3 * x - 11; printf("%f",y); } else { y = 2 * x - 1; printf("%f",y); } return 0; } 请教一下哪里有问题???
白胡子 2021-01-29 11:37:55 |
我把你这略微改了改,提交之后过了(*^▽^*)我就把“%f”改成了“%0.0f”,所以我猜,题目要的是整型不是浮点型
//求大佬解答这样为啥错了 #include<stdio.h> int main() { int fenduan(int a); int x; scanf("%d", &x); printf("%d", fenduan(x)); return 0; } int fenduan(int a) { int y; if(a < 1) y = a; if(1 <= a && a < 10) y = 2*a - 1; else y = 3*a - 11; return y; }
小白1 2021-01-17 16:43:01 |
int fenduan(int a); int main() { int x; scanf("%d", &x); printf("%d", fenduan(x)); return 0; } int fenduan(int a) { int y; if(a < 1) y = a; else if(1 <= a && a < 10) y = 2*a - 1; else y = 3*a - 11; return y; }
小白1 2021-01-17 16:44:43 |
稍微改一下就可以了
错哪里了求指教 #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("y=%d",y); return 0; }
#include<stdio.h> int main() { int x1,y1,y2,y3; scanf("%d",&x1); if(x1<1) printf("%d",x1); if(x1>=1&&x1<10) printf("%d",2*x1-1); else printf("%d",3*x1-11); return 0; } 大佬们看一下这个为什么是错的。
C二级辅导-进制转换 (C语言代码)浏览:514 |
C二级辅导-计负均正 (C语言代码)浏览:575 |
C语言训练-排序问题<1> (C++代码)浏览:589 |
字符串输入输出函数 (C语言代码)浏览:2478 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:740 |
字符逆序 (C语言代码)浏览:504 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:503 |
统计立方数 (C语言代码)浏览:862 |
C语言程序设计教程(第三版)课后习题4.9 (Java代码)浏览:602 |
C语言训练-求车速 (C语言代码)浏览:799 |
雾 2021-07-15 16:45:54 |
x的类型变一下,最后少一个return 0;
霸气江江 2021-08-12 19:46:32 |
把那个y=也输出上了 题目只要求输出值