這道題有點坑就是0.000和-0.000上面;
就是這個意思:
按理說應該輸出0.000的,但是輸出了-0.000,所以有個案例沒過,有大佬解釋一下原因嗎?
我的理解,因為int型別的0,在計算機內部是按照補碼表示的,所以賦值-0和0在計算機中都表示0(注意這裡的0為int型別),對於浮點型的0.0,那麼實際上就是接近0的乙個小數,大概是這種0.0000001,所以在浮點型裡面是沒有準確的0的,都是無限接近的0的小數來表示0。這就使得-0.0/-1.0是0.000,而-0/-1.0就是-0.000;
這道題有個技巧k1=1表示為正數,k1=0表示負數,k2=0表示在等號左邊,k2=1表示在等號右邊;
然後自己手寫乙個**模擬一遍即可;
ac**:
#include
using
namespace std;
intmain()
else
else
if(k1==
0&&k2==0)
else
if(k1==
1&&k2==1)
else
if(k1==
0&&k2==1)
}else
if(k1==
1&&k2==0)
else
if(k1==
0&&k2==0)
else
if(k1==
1&&k2==1)
else
if(k1==
0&&k2==1)
t=0;
}else
else
if(k1==
0&&k2==0)
else
if(k1==
1&&k2==1)
else
if(k1==
0&&k2==1)
if(s[i]
=='-'
)k1=0;
//負號
else
if(s[i]
=='+'
)k1=1;
//正號
t=0;
if(s[i]
=='=')}
}}if(k1==
1&&k2==0)
else
if(k1==
0&&k2==0)
else
if(k1==
1&&k2==1)
else
if(k1==
0&&k2==1)
if(num==0)
else
printf
("%c=%.3lf\n"
,ans,
-num*
1.0/numx)
;return0;
}
P1022計算器 改良
傳送 這個題讓你通過自己的努力,來寫乙個可以解一元一次方程的計算題 麻麻再也不用擔心我計算錯了qwq 我們先學習一下一元一次方程的解法 step1 移項。把帶有未知數的項移到方程的一邊,把常數項移到方程的另一邊。step2 係數化一。方程左右兩邊同時除以未知數的係數 step3 寫答 最後別忘了輸出...
P1022 計算器的改良
nclncl是一家專門從事計算器改良與公升級的實驗室,最近該實驗室收到了某公司所委託的乙個任務 需要在該公司某型號的計算器上加上解一元一次方程的功能。實驗室將這個任務交給了乙個剛進入的新手zl先生。為了很好的完成這個任務,zlzl先生首先研究了一些一元一次方程的例項 4 3x 84 3x 8 6a ...
P1022 計算器的改良
nclncl是一家專門從事計算器改良與公升級的實驗室,最近該實驗室收到了某公司所委託的乙個任務 需要在該公司某型號的計算器上加上解一元一次方程的功能。實驗室將這個任務交給了乙個剛進入的新手zl先生。為了很好的完成這個任務,zlzl先生首先研究了一些一元一次方程的例項 4 3x 84 3x 8 6a ...