[問題] c語言 無窮迴圈

作者: yoyokeep (dreams come true)   2014-10-03 15:38:48
開發平台(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語言,寫到這個程式會變成無窮迴圈,
可是不知道原因出在哪,先謝謝各位大大糾正觀念了!
作者: conbanwa (吱吱山的奶彈洨妹)   2014-10-03 15:43:00
N太大會顯示不了唷 請參考大數問題
作者: johnpage (johnpage)   2014-10-03 16:01:00
scant的參數不要用括號打%d看看
作者: yoyokeep (dreams come true)   2014-10-03 16:03:00
回conbanwa我打比較小的數字也是無窮迴圈johnpage打成%d就可以了!!!!,可是想請問(%d)我輸入寫(5)還是無窮迴圈,請問是為什麼呢?
作者: KawasumiMai (さあ、死ぬがいい)   2014-10-03 16:27:00
痾,輸入寫(5)會是自動套入(%d)的意思嗎....還是轉型失敗為0變成(0)?
作者: johnpage (johnpage)   2014-10-03 16:33:00
為什麼?反過來說,你在那裡得知scanf的參數有括號?
作者: jerryang12 (天辰)   2014-10-03 16:36:00
裡面是不需要括號的..
作者: yoyokeep (dreams come true)   2014-10-03 16:42:00
KawasumiMai大,會自動套入!!並不會失敗,只是會變無窮johnpage大 知道不需要括號,但是我其實還是想知道,為為什麼我用了至個FORMAT輸入後,會變無窮,想知道原因..
作者: silentlich   2014-10-03 16:55:00
因為scanf就是如此處理ordinary character的它要(,你給EOF。scanf就因為fail而return 0了
作者: longlongint (華哥爾)   2014-10-21 00:54:00
ctrl z

Links booklink

Contact Us: admin [ a t ] ucptt.com