回 帖 发 新 帖 刷新版面

主题:if语句的问题

书上的一个习题,要求输入工资,然后根据工资的大小得出相应的税金,下面是我用if语句来编写的一个程序,运行之后结果总是零。我试着单步调试了一下,发现每次运行到“tax=0;”后就直接跳到了最后一行的输出函数,挺郁闷滴~~~
#include <stdio.h>
void main()
{
    float x,tax;
    printf("Please input the amount of your salary:\n");
    scanf("%f",&x);
    if(0<x<1000)
    tax=0;
    else if(1000<=x<2000)
        tax=x*0.10;
        else if(2000<=x<3000)
                 tax=x*0.15;
             else if(3000<=x<4000)
                  tax=x*0.20;
              else if(x>=5000)
            tax=x*0.25;
    printf("The tax you should pay is %f yuan.",tax);
}

好吧,然后我试了很多方法去解决,可是没用···我知道肯定有问题,就是发现不了···各位帮帮忙,感激不尽~

回复列表 (共5个回复)

沙发

条件语句写错了,没有0<x<1000这种写法,要分开写

void main()
{
    float x,tax;
    printf("Please input the amount of your salary:\n");
    scanf("%f",&x);

    if(0< x && x <1000)
    {
        tax=0;
    }
    else if(1000<=x && x<2000)
        tax=x*0.10;
        else if(2000<=x && x<3000)
                 tax=x*0.15;
             else if(3000<=x && x<4000)
                  tax=x*0.20;
              else if(x>=5000)
            tax=x*0.25;
    printf("The tax you should pay is %f yuan.",tax);

板凳

按照运算符的结合性,语句0<x<1000等价于:
(0<x)<1000 => 1 < 1000 => true
因此只要楼主输入正数,该表达式恒为真。

3 楼

[quote]按照运算符的结合性,语句0<x<1000等价于:
(0<x)<1000 => 1 < 1000 => true
因此只要楼主输入正数,该表达式恒为真。[/quote]
niu x

4 楼

谢谢了~~是我疏忽了···咱初学者犯得都是一些小错误,不过我会努力的!

5 楼

分析的不无道理 学习了

我来回复

您尚未登录,请登录后再回复。点此登录或注册