解题思路以及注意事项:

  1. 本题主要是if语句的应用,本题有两次判断,if()里面一次,else if()里面一次,最后的else不用加括号判断,因为前面的都不执行,就执行else后面的语句了。

  2. 注意else后面不能加分号,不然会报错,注意if()和else if()后面不能加”;“。

  3. 注意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;
}

有什么不懂得可以在下方评论区评论

点赞(53)
 

0.0分

120 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 253 条评论

clouvsmiex 5年前 回复TA
#include<stdio.h>
int f(int);
int main()
{
	int x,y;
	printf("x=");
	scanf("%d",&x);
	y=f(x);
	printf("y=%d",y);
	return 0;
}
int f(int x){
	int y;
	if(x<1)
	{
		y=x;
	 } 
	else if(x>=1&&x<=10)
	{
		y=2*x-1;
	}
	     else
		 {
		 	y=3*x-10;
		 }
    return y;	 
}
错在哪?
菜鸡一个 5年前 回复TA
#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",y);
	return 0;
}
为什么出错?
hong豪 5年前 回复TA
@澄漫 当然可以,不过我觉得if里面的条件可以改成x<1,那么下一个条件就可以写成x<10,这样可以化简条件
初学者 5年前 回复TA
@初学者 但是改用float结果又会错是怎么回事?
初学者 5年前 回复TA
这里不应该用int的吧,题目上没说是整数,而且还有一个条件是x<1
shxin 5年前 回复TA
@编程少女H 题目中第二行说x的条件是1<=x<10,你的第一个if,是x>=10.。这里错了,你这样写就是把题目第二行的条件变成了1<=x<=10了
shxin 5年前 回复TA
@jjstudyc 你好像没有定义a吧,int func1(int a)这括号里的是变量名不是定义整形变量a
shxin 5年前 回复TA
@拉格朗日 不能空行自己去改一下
shxin 5年前 回复TA
@拉格朗日 #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 5年前 回复TA
@拉格朗日 没加花括号,花括号代表开始,你的编译器估计太老了,用的是什么呀?你参考一下我的代码