為啥我的結果不正確?
#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-09-02
&&代表邏輯與 ,是兩邊的結果都是 true,總結果才為true。
你上面寫的
if(0<=t<5&&23<=t<24)
就不對,怎么可能有t既滿足小于5,又滿足大于23
2018-09-02
而且沒有
if(0<=t<5&&23<=t<24)
你寫的這種用法,你試試直接把這句代碼下面的計算改成m=1000
結果就是2000,說明了什么。
可以改成
if(t<5||t>=23)
你同時t兩邊都有比較在c語言中的是無法識別的。
2018-09-02
應該用|| ,邏輯或