解题思路以及注意事项:

  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 条评论

1月前 回复TA
#include<stdio.h>
int main()
{
    int x;
    int y;
    scanf_s("%d", &x);
    if (x < 1)
    {
        printf("%d",x);
    }
    else
    {
        if (x >= 10)
        {
            y = 3 * x - 11;
            printf("%d", y);
        }
        else
        {
            y = 2 * x - 1;
            printf("%d", y);
        }
    }

    
    return 0;
}
玉兔捣药 2月前 回复TA
@jdy 没有花括号{}
jdy 2月前 回复TA
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;
哪里错了
太阳系的一粒沙子 3月前 回复TA
#include<stdio.h>
int main()
{
    int x,y;
    scanf("%d",&x);
    if(x < 1)
    {
        y = x;
    }
    else if(x < 10)
    {
        y = 2 * x -1;
    }
    else
    {
        y = 3 * x - 11;
    }
    printf("%d\n",y);
    return 0;
}
Trans 3月前 回复TA
@JacksonXu 第二种情况x大写了
南柯一梦 5月前 回复TA
#include<stdio.h>
int main()
{
	int x,y;
	scanf("%d",&x);
	if(x<1)
	{
		printf("y=%d",x);
	}
	if(x<10 && x>=1)
	{
		printf("y=%d",2*x-1);
	}
	if(x>=10)
	{
		printf("y=%d",3*x-11);
	}
	return 0;
}
南柯一梦 5月前 回复TA
#include<stdio.h>
int main()
{
	int x,y;
	scanf("%d",&x);
	if(x<1)
	{
		printf("y=%d",x);
	}
	if(x<10 && x>1)
	{
		printf("y=%d",2*x-1);
	}
	if(x>=10)
	{
		printf("y=%d",3*x-11);
	}
	return 0;
}
chenlun94 7月前 回复TA
这个如果是,x<1放在最前面、按照分段函数的出现顺序进行if的话,当你输入“14”时,答案就不会是“31“,而是”27“。而当你将最后一个分段函数条件放在scanf后,答案就会是正确的
uq_94719001929 9月前 回复TA
#include<stdio.h>
int main()
{
	int a,y;

    scanf("%d",&a);
    if(a>=10)
    {
        y = 3*a - 11;
    }
    else if(a>=1)
    {
        y = 2*a - 1;
    }
    else if(a<1)
    {
        y = a;
    }
    printf("%d",y);
   
    return 0;
}
大聪明 10月前 回复TA
@云中 我把浮点数换成整形它就对了,题目也没有要求是什么数据类型......