论坛: 编程破解 标题: 一个C的菜鸟问题(有劳了!) 复制本贴地址    
作者: touxdx [touxdx]    论坛用户   登录
我今天刚学了C语言,就碰到了一个难题:
main()
{
int i,n;
long double jieguo;
i=1;
jieguo=1;
printf("please input a number:\n");
scanf("%d",&n);
while(i<=n)

  jieguo=jieguo*i;
 i++;
 }
printf("jieguo=%d",jieguo);
}
以上与我在tc上的完全相同,可是当运行的时候结果是0
为什麽?


[此贴被 touxdx(touxdx) 在 02月18日19时46分 编辑过]


[此贴被 touxdx(touxdx) 在 02月18日19时17分 编辑过]

地主 发表时间: 2003-02-18 19:28:17

回复: loveqing [loveqing]   论坛用户   登录
哦?
不会吧!


B1层 发表时间: 02/18 19:30

回复: wjhwjh5 [wjhwjh5]   论坛用户   登录
可能是输出格式符的错:
应该是%f而不是%d.

B2层 发表时间: 02/18 23:21

回复: shuaishuai [near]   论坛用户   登录
我同意楼上的看法,你把格式换一下看看好了!

B3层 发表时间: 02/19 10:26

回复: quake [quake]   论坛用户   登录
n不要太大,否则会很恐怖的,如果要计算很大的n,请用字符串处理.

B4层 发表时间: 02/19 13:12

回复: chiruwn [chiruwn]   论坛用户   登录
我认为你该给n定义一下范围

B5层 发表时间: 02/19 13:58

回复: cyhawk [cyhawk]   论坛用户   登录
把printf("jieguo=%d",jieguo);中的%d换成%ld应该可以。


B6层 发表时间: 02/19 15:45

回复: loveqing [loveqing]   论坛用户   登录
完全同意楼上的,在tc上一下

B7层 发表时间: 02/19 18:49

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号