[問題] 為什麼輸出之後有負0?
遇到的問題: (題意請描述清楚)
這是我寫的高斯喬丹消去法, 是從input.txt 輸入數值後做運算
但是我輸出之後有一列的數字0 會變成 -0
(目前跑出來的結果還不符合 RREF, 會再加個排序的迴圈)
雖然方法不是很聰明, 還是希望大家予以指教, 謝謝 ^^"
希望得到的正確結果:
1 1 0 0 1
0 0 0 0 0
0 0 1 0 1
0 0 0 1 0
程式跑出來的錯誤結果:
1 1 0 0 1
0 0 0 0 0
0 0 1 0 1
-0 -0 -0 1 -0
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev c++
有問題的code: (請善用置底文標色功能)
http://paste.plurk.com/show/314623/
補充說明:
我寫一個 cout << 0/(-3); 做為測試, 顯示結果是零
好像是程式經過這行 M[r][m] = M[r][m]/temp;
如果 M[r][m] 是負的, 同一列是0 的元素都會變成 -0
但是我還是不知道原因在哪裡
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.202.53
→
10/05 22:51, , 1F
10/05 22:51, 1F
→
10/05 22:58, , 2F
10/05 22:58, 2F
→
10/05 22:58, , 3F
10/05 22:58, 3F
→
10/05 22:59, , 4F
10/05 22:59, 4F
推
10/05 23:00, , 5F
10/05 23:00, 5F
→
10/05 23:00, , 6F
10/05 23:00, 6F
→
10/05 23:00, , 7F
10/05 23:00, 7F
→
10/05 23:00, , 8F
10/05 23:00, 8F
→
10/05 23:01, , 9F
10/05 23:01, 9F
→
10/05 23:02, , 10F
10/05 23:02, 10F
→
10/05 23:02, , 11F
10/05 23:02, 11F
→
10/05 23:03, , 12F
10/05 23:03, 12F
推
10/05 23:03, , 13F
10/05 23:03, 13F
→
10/05 23:04, , 14F
10/05 23:04, 14F
→
10/05 23:04, , 15F
10/05 23:04, 15F
→
10/05 23:04, , 16F
10/05 23:04, 16F
→
10/05 23:04, , 17F
10/05 23:04, 17F
推
10/05 23:17, , 18F
10/05 23:17, 18F
→
10/05 23:19, , 19F
10/05 23:19, 19F
→
10/05 23:20, , 20F
10/05 23:20, 20F
推
10/05 23:24, , 21F
10/05 23:24, 21F
→
10/05 23:25, , 22F
10/05 23:25, 22F
→
10/05 23:25, , 23F
10/05 23:25, 23F
我目前的處理方式 (私心覺得-0 很礙眼) 是#include <cmath>
這個函式庫裡面有個fabs() 可以取浮點數的絕對值, 不過還在想其他辦法就是了 ^^"
感謝板上各位大大的解答 ^^
※ 編輯: Lizstlin 來自: 140.115.202.53 (10/05 23:51)
推
10/05 23:57, , 24F
10/05 23:57, 24F
推
10/06 00:58, , 25F
10/06 00:58, 25F
→
10/06 01:13, , 26F
10/06 01:13, 26F
※ 編輯: Lizstlin 來自: 140.115.202.53 (10/06 01:14)
→
10/06 01:14, , 27F
10/06 01:14, 27F