解题思路以及注意事项:

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

社会学里的大飞机 2年前 回复TA
#include <stdio.h>

int main()
{
	int x , y;
	printf("请输入x的值:");
	scanf("%d", &x);
	 if(x<1)
	 {
	 	printf("%d",x);
	 }else 
	 	if(1<=x<10)
	 {
	 	y=2.0*x-1;
	 	printf("%d",y);
	 }else 
	 	if(x>=10)
	 {
	 	y = 3.0*x-11;
	 	printf("%d",y);
	 }
	return 0;
 }
2052051288 2年前 回复TA
@Artanis 你为什么要用float,整数就用int,小数才用float,你输出%d是整数,你输出%f是小数,题目要求输出整数,而你的%f输出的是小数,就是(整数.0000000000)
寒影 2年前 回复TA
#include <stdio.h>
int main(){
    int x,y;
    printf("请输入一个数字:\n");
    scanf("%d",&x);
    if(x<0) 
       printf("x=%d\ny=%d\n",x,x);
    else if(x>=1 && x<10)
       printf("x=%d\ny=%d\n",x,2*x-1);
    else
        printf("x=%d\ny=%d\n",x,3*x-11);
    return 0;
}
其实这样也可以
戏忠 2年前 回复TA
#include<stdio.h>
int main()
{
	int x,y,z,a,b,c;
	scanf("%d",&x);
	if(x<1) z=a;
	else if(x>=1&&x<10) z=b;
	else z=c;
	switch(z)
	{
	case'a':
	y=x;
	printf("%d\n",y);break;
	case'b':
	y=2*x-1;
	printf("%d\n",y);break;
	default:
	y=3*x-11;
	printf("%d\n",y);break;
	}
	return 0;
}
为啥这个也50%。。。
静静 2年前 回复TA
#include <stdio.h>
int main(){
    int x,y;
    scanf("%d", &x);
    y=x<1?x:(x<10?2*x-1:3*x-11);
    // 三目表达式 表达1?表达2:表达3
    printf("%d", y);
    return 0;
}
清水啊 2年前 回复TA
#include<stdio.h>
int main()
{
	int x,y;
	scanf("%d",&x);
    if(x<1)
      y=x;
    if(1<=x&&x<10)  
     y=2*x-1;
    if(x>=10) 
     y=3*x-11;
     printf("%d",y);
	return 0;
}
这个通过了,但有问题吗?
清水啊 2年前 回复TA
@2DD5D罗浩 只要你用main函数结尾要有一个return 0;告诉电脑你这个程序运行结束了
Artanis 2年前 回复TA
#include <stdio.h>
int main()
{
	float x;
	scanf("%f", &x);
	int a ;
		if (x < 1.0) {
			a = 1;
		}
		else if (1.0 <= x < 10.0) {
			a = 2;
			x = 2 * x - 1;
		}
		else {
			a = 3;
			x = 3 * x - 11;
		}
	switch (a) {
	case1:printf("%f", x);break;
	case2:printf("%f", x); break;
	case3:printf("%f",x); break;
	}
	return 0;
}
求各位大佬看看哪里错了啊,为什么什么都不显示
oula 2年前 回复TA
#include<stdio.h>

int fun(int data);
int main(void)
{
    int data;
    scanf("%d" ,&data);
    printf("%d" ,fun(data));
    return 0;
}

int fun(int data)
{
    int result  = 0;
    if(data < 1)
    {
        result = data;
    }
    else if(data >= 1 && data < 10)
    {
        result = 2 * data - 1;
    }
    else
    {
        result = 3 * data - 11;
    }
    return result;
}
2DD5D罗浩 2年前 回复TA
我想问一下最后的return 0是什么意思?