|
![]() | 作者: 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号