[问题] 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