解题思路以及注意事项:
本题主要是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 人评分
/* 有一个函数 y={ x x<1 | 2x-1 1<=x<10 { 3x-11 x>=10 写一段程序,输入x,输出y */ #include <stdio.h> int main() { int x, y; scanf("%d", &x); if (x < 1) y = x; else if (x>10) y = 3 * x - 11; else y = 2 * x - 1; printf("%d", y); }
/*有一个函数 y={ x x<1 | 2x-1 1<=x<10 { 3x-11 x>=10 写一段程序,输入x,输出y*/ #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); } /*这里需要注意在表示1<=x<10时要分开写成1<=x&&x<10的形式*/
#include<stdio.h> int f(int x) { if(x<1) return x; if(x>=1&&x<10) return (2*x-1); if(x>=10) return (3*x-11); } int main(void) { float n; scanf("%d",&n); printf("%d",f(n)); return 0; } 这有啥问题,为啥运行结果一直不对
kiko 2021-12-05 15:59:10 |
输入那里的%d是整数应该要改成%f
#include<stdio.h> int main() { int x,y; scanf("%d",&x); if(x<1) { y=x; printf("%d",y); } else if(1<=x<10) { y=2*x-1; printf("%d",y); } else { y=3*x-11; printf("%d",y); } return 0; } 哪里错了
uq_96487540348 2021-11-14 15:33:57 |
(1<=x<10)这里
月亮不想亮 2021-11-18 17:52:00 |
1<=x<10这里
贺宏福 2021-11-22 20:39:13 |
c语言中应该是 x>=1&&x<10
橙子 2021-12-17 00:58:11 |
else if里的表达式应该是(1<=x&&x<10)
#include<stdio.h> int main() { int x,y; scanf("%d",&x); if (x<1) { y=x; printf("%d",y); } if (x>=10) { y=3*x-11; printf("%d",y); } else { y=2*x-1; printf("%d",y); } return 0; } 脑壳炸了,淦,哪个环节出问题了?
light 2021-11-02 14:03:52 |
第二个if 然后else 构成了一个语句 你最后那个相当于没写
uq_96487540348 2021-11-14 15:37:35 |
两个if,else对应的是最近的if相当于else的情况是小于10的情况不分小于1这个情况
为什么答案是错的 #include<stdio.h> int main() { double x,y; scanf("%lf",&x); if(x<1) y=x; else if(1<=x&&x<10) y=2*x-1; else y=3*x-1; printf("%.2lf",y); return 0; }
码代码码代码 2021-09-01 22:48:44 |
最后那个else应该是else if后面的,不可以对齐写,如果不加花括号一定要注意位置
1015291114 2021-09-06 17:14:44 |
我又试了一下,原因是第三个那个公式后面是-11而不是-1,写错了;第二点原因好像是不能用double,要用int,改成了int以后就通过了[笑哭]
大魔王 2021-11-01 12:36:53 |
@1015291114 它的答案设定的太死板了,题目并没说X是整型吧,为什么不用double
这是一只西瓜味的猫 2022-01-25 22:12:52 |
对,这个有没有规定必须得用整型,题目不严谨,要是没写用什么类型,就得用double
#include<stdio.h> int main() { float x,y; scanf("%f",&x); if(x<1.0){ printf("y=%f",x); }else if(x>=1 && x<10){ printf("y=%f",2*x-1); }else { printf("y=%f",3*x-11); } return 0; } 哪错了呢???
分糖果 (C++代码)浏览:1433 |
回文串 (C语言代码)浏览:2835 |
ASCII帮了大忙浏览:748 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:896 |
【明明的随机数】 (C语言代码)浏览:784 |
【蟠桃记】 (C语言代码)浏览:1021 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:606 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:678 |
模拟计算器 (C语言代码)浏览:2292 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:401 |