解题思路以及注意事项:

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

JacksonXu 1年前 回复TA
莫名其妙的错误
#include<stdio.h>
int main()
{
   int x,y;
   scanf("%d",&x);
   if (x<1) 
   {
       y=x;
   }
   else if (x>=1&&X<10)
   {
       y=2*x-1;
   }
   else (x>=10) 
   {
       y=3*x-11;
   }
   printf("%d",y);
    return 0;
}
荒诞学家 1年前 回复TA
@逆浪长歌 我也是这样的
荒诞学家 1年前 回复TA
@uq_81645443437 它最后要求输出的时候是没有y=的,它只要一个结果
uq_81645443437 1年前 回复TA
float x,y;
	scanf("%f", &x);
	if (x < 1)
		y = x;
	else
	{
		if (x >= 1 && x < 10)
			y = 2 * x - 1;
		else
		{
			if (x >= 10)
				y = 3 * x - 11;
		}
	}
	printf("y=%f\n", y);
	return 0;
答案是对的,但判我错了,是为什么?
十一 1年前 回复TA
@社会学里的大飞机 #include<stdio.h> int main() {     int x,y;     scanf("%d",x);     if(x<1)         y=x;     else     {         if(1<=x<10)             y=2*x-1;         else             y=3*x-10;     }     printf("%d
",y);     return 0; }这个哪里错了
熊某软硬不吃 1年前 回复TA
@旅行的鹅 你if加条件之后应该是{执行的公式}
山河岁月 1年前 回复TA
@ranhoulei 这后面printf()这里也是%lf
ranhoulei 1年前 回复TA
大哥们 这个也报错 为啥啊
#include<stdio.h>
int main()
{
	double x,y;
	
	printf("Enter x:\n");
	scanf("%lf",&x);
	if(x<10)
	{
		if(x<1)
		y=x;
		else
		y=2*x-1; 
		}
	else
	{
		y=3*x-11;
	}
	printf("y=%.2f\n",y);
	return 0;
}
云中 1年前 回复TA
这个函数有说是整数吗,还是说没说明的情况下都认为是整数
榴莲酥 1年前 回复TA
@旅行的鹅 stdio.h