关于不理解if语句产生的问题


int main()
{
    int x = 0;
    scanf("%d",&x);
    if(x<=0)
    {
        printf("%d",7*x+10);
    }
    else if(0<x<=10)
    {
        printf("%d",3*(x*x));
    }
    else if(10<x<=20)
    {
        printf("%d",-x);
    }
    else if(x>20)
    {
        printf("30");
    }
    return 0;
}

到了第三个if语句的时候打印出的结果就不对了,为什么呢

else if(0<x<=10) 不能这样写,x>0&&x<=10
下面的一样

出错点在红框部分:

img

以下改法供题主参考:

#include<stdio.h>

int main()
{
    int x = 0;
    scanf("%d",&x);
    if(x<=0)
    {
        printf("%d",7*x+10);
    }
    else if(x>0&&x<=10)
    {
        printf("%d",3*(x*x));
    }
    else if(x>10&&x<=20)
    {
        printf("%d",-x);
    }
    else if(x>20)
    {
        printf("30");
    }
    return 0;
}

运行结果如图:

img


成功运行并输出。
希望对题主有所帮助,望采纳!!