当输入的x小于等于0时,输出与设想的不同

img


当输入的 x 小于0时,进行的运算不是预想的y=x,而是y=x+1。当输入 x =0时,得出的不是﹣-1而是1

#include <stdio.h>

int main()
{
    int x, y;
    printf("请输入一个数:");
    scanf("%d", &x);
    if (x <= -5 || x >= 10)
        printf("error");
    else if (x > -5 && x < 0)
        printf("y=%d", x);
    else if (x > 0 && x < 10)
        printf("y=%d", x+1);
    else
        printf("y=-1");
    return 0; 
}

else if的条件不能写成 -5<x<0,改为x>-5 && x<0

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    int x,y;
    printf("输入一个整数:");
    scanf("%d",&x);
    if(x<=-5 || x>=10)
        printf("error");
    else
    {   
        if(x>-5 && x<0)
            y = x;
        else if(x>0 && x<10)
            y = x+1;
        else
            y = -1;
        printf("y=%d",y);
    }
    return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632