解题思路以及注意事项:

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

夜微凉 5年前 回复TA
@迦楠 理论上用double更严谨一些,但这是电脑判定,它只根据结果判定,所以要根据题目要求。题目样例中输入输出都是整型,所以要用int类型。从这里也能侧面反映出一个问题,我们要仔细观察问题跟样例
雷步云 5年前 回复TA
#include<stdio.h>
int main()
{
	double x;
	int y;
	scanf("%lf",&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;
}
XWBDSG 5年前 回复TA
@9527 x可以是浮点型,y必须是整型
XWBDSG 5年前 回复TA
@1900912820 if(x >= 1 && x < 10)    这句应该是 else if(x >= 1 && x < 10)吧
XWBDSG 5年前 回复TA
@迦楠 题目中不是整型变量吗
一枚方糖 5年前 回复TA
@迦楠 我觉得应该是实数啊  应该用 double
迦楠 5年前 回复TA
为什么是int型
不可以是float型吗?
1900912820 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;
   else
     y = 3*x - 11;
    printf("%d", y);
    return 0;
}


这个错50%是什么意思
yutianfeng 5年前 回复TA
#include<stdio.h>
int main()
{
	int x,y;
	scanf("%d",&x);
	if(x<1){
		y=x;
		printf("%d\n",y);
	}else if(1<=x && x<10){
		y = 2*x-1;
		printf("%d\n",y);
	}else{
		y = 3*x-11;
		printf("%d\n",y);
	}
	return 0;
}
这个题啊,用int类型定义变量就可以通过,用double类型定义变量的话编译运行是没问题的,但是提交就会出现答案错误,这个题目出的有问题,没有说明不能有小数。
清清大官人 5年前 回复TA
题目到底是什么意思啊