解题思路以及注意事项:

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

林毅 3年前 回复TA
/*
有一个函数
y={  x      x<1
    |  2x-1   1<=x<10
    { 3x-11  x>=10
写一段程序,输入x,输出y
*/
#include <stdio.h>
int main()
{
	int x, y;
	scanf("%d", &x);
	if (x < 1)
		y = x;
	else if (x>10)
		 y = 3 * x - 11;
	else
		y = 2 * x - 1;
	printf("%d", y);
}
林毅 3年前 回复TA
/*有一个函数
y={  x      x<1
    |  2x-1   1<=x<10
    { 3x-11  x>=10
写一段程序,输入x,输出y*/
#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);
}
/*这里需要注意在表示1<=x<10时要分开写成1<=x&&x<10的形式*/
kiko 3年前 回复TA
@kyriemq 输入那里的%d是整数应该要改成%f
kyriemq 3年前 回复TA
#include<stdio.h>
int f(int x)
{
    if(x<1)
        return x;
    if(x>=1&&x<10)
        return (2*x-1);
    if(x>=10)
        return (3*x-11);
}
 int main(void)
 {
     float n;
     scanf("%d",&n);
     printf("%d",f(n));
     
     return 0;
 }
     这有啥问题,为啥运行结果一直不对
贺宏福 3年前 回复TA
@mmxdy c语言中应该是 x>=1&&x<10
月亮不想亮 3年前 回复TA
@mmxdy 1<=x<10这里
uq_96487540348 3年前 回复TA
@sc 两个if,else对应的是最近的if相当于else的情况是小于10的情况不分小于1这个情况
uq_96487540348 3年前 回复TA
@mmxdy (1<=x<10)这里
mmxdy 3年前 回复TA
#include<stdio.h>
int main()
{
    int x,y;
    scanf("%d",&x);
    if(x<1)
    {
        y=x;
        printf("%d",y);
    }
    else if(1<=x<10)
    {
        y=2*x-1;
        printf("%d",y);
    }
    else 
    {
        y=3*x-11;
        printf("%d",y);
    }
    return 0;
}

哪里错了
light 3年前 回复TA
@sc 第二个if 然后else 构成了一个语句 你最后那个相当于没写