[問題] c語言 無窮迴圈

看板C_and_CPP作者 (dreams come true)時間9年前 (2014/10/03 15:38), 編輯推噓5(5011)
留言16則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Microsoft Visual Studio 2010 Express 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 想問為什麼這個程式只輸入一個數值就會變成無窮迴圈 程式碼(Code):(請善用置底文網頁, 記得排版) int main() { int n=0,i,f=1; while(scanf("(%d)",&n)!= EOF) { f=1; for(i=1;i<=n;i++) { f=f*i; } printf("%d\n",f); } } 補充說明(Supplement): 各位大大好,因為最近在自修c語言,寫到這個程式會變成無窮迴圈, 可是不知道原因出在哪,先謝謝各位大大糾正觀念了! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.228.172.132 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1412321932.A.401.html

10/03 15:43, , 1F
N太大會顯示不了唷 請參考大數問題
10/03 15:43, 1F

10/03 16:01, , 2F
scant的參數不要用括號
10/03 16:01, 2F

10/03 16:01, , 3F
打%d看看
10/03 16:01, 3F

10/03 16:03, , 4F
回conbanwa我打比較小的數字也是無窮迴圈
10/03 16:03, 4F

10/03 16:05, , 5F
johnpage打成%d就可以了!!!!,可是想請問(%d)我輸入寫
10/03 16:05, 5F

10/03 16:05, , 6F
(5)還是無窮迴圈,請問是為什麼呢?
10/03 16:05, 6F

10/03 16:27, , 7F
痾,輸入寫(5)會是自動套入(%d)的意思嗎....
10/03 16:27, 7F

10/03 16:28, , 8F
還是轉型失敗為0變成(0)?
10/03 16:28, 8F

10/03 16:33, , 9F
為什麼?反過來說,你在那裡得知scanf的參數有括號?
10/03 16:33, 9F

10/03 16:36, , 10F
裡面是不需要括號的..
10/03 16:36, 10F

10/03 16:42, , 11F
KawasumiMai大,會自動套入!!並不會失敗,只是會變無窮
10/03 16:42, 11F

10/03 16:43, , 12F
johnpage大 知道不需要括號,但是我其實還是想知道,為
10/03 16:43, 12F

10/03 16:44, , 13F
為什麼我用了至個FORMAT輸入後,會變無窮,想知道原因..
10/03 16:44, 13F

10/03 16:55, , 14F
因為scanf就是如此處理ordinary character的
10/03 16:55, 14F

10/03 16:56, , 15F
它要(,你給EOF。scanf就因為fail而return 0了
10/03 16:56, 15F

10/21 00:54, , 16F
ctrl z
10/21 00:54, 16F
文章代碼(AID): #1KBbACG1 (C_and_CPP)