问答详情
源自:5-14 综合练习

为啥我的结果不正确?

#include <stdio.h>

float S(float t,float x)

{float m;

if(0<=t<5&&23<=t<24)

{

    if(x<=3)

    {

        m=14;

    }

    else

    {   

        m=(x-3)*2.3*1.2+14;

    }

}

else

{

    if(x<=3)

    {

        m=14;

    }

    else

    {

        m=(x-3)*2.3+14;

    }

}

return m;

}


int main()

{

    printf("%f",S(9,12)+S(18,12));

    return 0;

}


提问者:纸面 2018-08-31 17:48

个回答

  • qq_尚海潮_0
    2018-09-02 10:56:31
    已采纳

    &&代表逻辑与 ,是两边的结果都是 true,总结果才为true。

    你上面写的

    if(0<=t<5&&23<=t<24)

    就不对,怎么可能有t既满足小于5,又满足大于23

  • qq_尚海潮_0
    2018-09-02 11:14:07

    而且没有

    if(0<=t<5&&23<=t<24)

    你写的这种用法,你试试直接把这句代码下面的计算改成m=1000

    结果就是2000,说明了什么。

    可以改成

    if(t<5||t>=23)

    你同时t两边都有比较在c语言中的是无法识别的。

  • qq_尚海潮_0
    2018-09-02 11:02:56

    应该用|| ,逻辑或