uva多筆測資

看板C_and_CPP (C/C++)作者 ( )時間6年前 (2019/07/26 10:51), 6年前編輯推噓3(3011)
留言14則, 4人參與, 6年前最新討論串1/1
早安QQ 未給定測資筆數的題目 1。看網上輸出測資都直接print 但我一筆print一次會WA,存在陣列等測資結束才AC (用給定筆數的題目試的) 請問這是什麼問題,我是不是白痴啊嗚嗚 2。 如何判斷測資結束QQ (1)while(scanf()!=EOF) 用vs寫不能編譯,硬丟上去還是WA... (2)while(cin>>a>>b) if(a==0&&b==0) break; (3)getline(cin,line)好像也會忽略\n跟tab (4)getchar()會吃到正常測資 附註用udebug測過是對ㄉQQ 問這種白痴問題本人真的感到十分慚愧QQ但是真的困擾很久ㄌ 麻煩各位救救小妹> < 謝謝 題號10221 https://is.gd/7oF9td 這麼簡單也過不了有點不好意思貼... code在while停不下來的狀態: http://ideone.com/NjALdk -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.245.65.132 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1564109494.A.8E0.hml

07/26 13:00, 6年前 , 1F
所以那個題目和code呢
07/26 13:00, 1F
※ 編輯: irisowo (111.251.194.38 臺灣), 07/26/2019 13:42:39

07/26 14:01, 6年前 , 2F
scanf_s 那邊寫得不對,s 是 double 不用後面那個 1
07/26 14:01, 2F

07/26 14:01, 6年前 , 3F
三個欄位可以一次 scan 進來,不需要分開寫兩個 cin
07/26 14:01, 3F

07/26 14:03, 6年前 , 4F
scanf_s 的傳回值不是 EOF 而是成功撿到幾個欄位
07/26 14:03, 4F

07/26 14:03, 6年前 , 5F
所以如果收集到的欄位數量不是你想要的就可以判定結束
07/26 14:03, 5F

07/26 14:05, 6年前 , 6F
這邊會出現新手問題很正常不用害羞,九月開學後會更多
07/26 14:05, 6F
不熟scanf_s懺悔中 > < 因為 scanf,scanf_s沒加數字,cin都錯,就亂改一通... 很謝謝你~ 然後超級感謝佛心版友幫忙de(orz 結果改#define PI 的精確度就過(謎xD 不用存陣列 + cin 就AC了好感人QQ 再感謝他一次(拜 ※ 編輯: irisowo (111.251.194.38 臺灣), 07/26/2019 16:04:23

07/26 17:33, 6年前 , 7F
剛剛試了 UVa 的 ANSI C 不提供 M_PI 圓周率值
07/26 17:33, 7F

07/26 17:34, 6年前 , 8F
所以這題的重點是你要能死背 16 位數圓周率就對了
07/26 17:34, 8F

07/26 17:41, 6年前 , 9F
因為 M_PI 不是標準...
07/26 17:41, 9F
2*acos(0)~ 補卷ㄍ說double用52位元存 那十幾位的十進位跟二進位就會差比較多> <(? ※ 編輯: irisowo (111.251.194.38 臺灣), 07/26/2019 18:56:10

07/27 07:54, 6年前 , 10F
我個人也會推薦寫 2*acos(0) 就是, 你所謂差比較多是?
07/27 07:54, 10F

07/27 07:55, 6年前 , 11F
如果是跟用 2*acos(0) 得出來的值比的話
07/27 07:55, 11F

07/27 07:57, 6年前 , 12F
其實像上面推文說的寫十六位小數就夠了
07/27 07:57, 12F

07/27 08:02, 6年前 , 13F
http://ideone.com/ZUtKuk 可以看到兩個值是完全一樣的
07/27 08:02, 13F

07/27 12:20, 6年前 , 14F
感謝ㄋ的測試QQ~本來只寫3.141592653589而已啦:p~
07/27 12:20, 14F
文章代碼(AID): #1TEcgsZW (C_and_CPP)
文章代碼(AID): #1TEcgsZW (C_and_CPP)