P1022 計算器的改良 模擬題

2021-10-02 04:25:37 字數 1546 閱讀 7756

這道題有點坑就是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 ...