首页
社区
课程
招聘
[讨论]C语言求阶乘
发表于: 2007-4-8 13:38 11283

[讨论]C语言求阶乘

2007-4-8 13:38
11283
用C来实现阶乘:
#include "stdio.h"
main()
{
int s,n;
for(s=1,n=1;n<=12;n++)
s=s*n;
printf("%d",s);
}

结果-1024,不知道怎么办了啊,这次二级考失挂了!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
unsigned声明非符号数。。。。
2007-4-8 14:50
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
#include "stdio.h"
main()
{
int n,s=1;
for(n=1;n<=4;n++)
{
s=s*n;
}
printf("%d",s);
return 0;
}

1*2*3*4=24
2007-4-8 15:53
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
12的阶乘啊,呵,,呵,,unsigned试一下,先谢了
2007-4-11 09:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
用递归调用
2007-4-11 13:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
12的阶乘的值超过了int型的范围,因此建议把类型声明为UNSIGNED int
2007-4-11 13:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
沒有吧?
在 32 bits 的機器上, int 應該是 -2147483648 到 2147483647
12! = 479001600
2007-4-15 19:18
0
雪    币: 214
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

unsigned int fun( int i);
int main(int argc, char *argv[])
{
  const int i = 12;
  printf("%d",fun(i));
  getch();
  return 0;
}
unsigned int fun( int i)
{
         if(i == 1 )return 1;
         else return fun(i-1) * i;
}
-------------------------------------------
479001600
-------------------------------------------
2007-4-15 20:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
怎么不定义为长整型啊?
2007-4-16 11:52
0
雪    币: 214
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
32位机子有长整型吗?
2007-4-16 18:50
0
游客
登录 | 注册 方可回帖
返回
//