| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1039 人关注过本帖
标题:1+1!+2!+...+(n-1)!+n! 的程序 我不知道错在哪里了 ?
只看楼主 加入收藏
wuyangiori
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-1-9
收藏
 问题点数:0 回复次数:10 
1+1!+2!+...+(n-1)!+n! 的程序 我不知道错在哪里了 ?

下面是我写的 求 1+1!+2!+...+(n-1)!+n! 的程序 但是 出错了 我不知道错在哪里了 ?
请您帮我检查下 谢谢了 ~

#include<stdio.h>
main()
{
int n;
long sum=0;
printf("input a munber:");
scanf("%d",&n);
for(int i=1;i<=n;i++)
sum+=factorial(i);
printf("%d!=%ld",n,sum);
}
long factorial(int number)
{

if(number<=1)
return 1;
else
return(number*factorial(number-1));
}

搜索更多相关主题的帖子: long 检查 include number return 
2007-05-24 15:29
依然饭后c
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-5-20
收藏
得分:0 
for(int i=1;i<=n;i++) //i 不能在这声明
sum+=factorial(i); //在调用函数之前应该在头文件后面声明一下或者在头文件后面定义,不然会报警告,
//我用的VC++


还有 你这好象是求的一个数的阶乘吧。。。。。
呵呵 我也不太会 说错了千万别BS我 大家共同进步嘛!

饭后听着杰伦的歌,就开始c......
2007-05-24 15:44
zidance
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-5-22
收藏
得分:0 

for(int i=1;i<=n;i++),i应该在开头声明类型。
在主函数开头应该声明factorial(int number)的类型。
#include<stdio.h>
main()
{
int n,i;
long sum=0,factorial(int number);
printf("input a munber:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=factorial(i);
printf("%d!=%ld",n,sum);
getch();
}
long factorial(int number)
{

if(number<=1)
return 1;
else
return(number*factorial(number-1));
}

2007-05-24 15:56
zidance
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-5-22
收藏
得分:0 
按照你的题目,sum初始应该为1。
另外输出时是n!=,而不是1!+2!+...n!=,你看看怎么改。
2007-05-24 16:05
caicai99
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-5-22
收藏
得分:0 
回复:(wuyangiori)1+1!+2!+...+(n-1)!+n! 的程序 ...

好像sum=1吧

2007-05-24 16:11
wuyangiori
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-1-9
收藏
得分:0 
以下是引用依然饭后c在2007-5-24 15:44:01的发言:
for(int i=1;i<=n;i++) //i 不能在这声明
sum+=factorial(i); //在调用函数之前应该在头文件后面声明一下或者在头文件后面定义,不然会报警告,
//我用的VC++


还有 你这好象是求的一个数的阶乘吧。。。。。
呵呵 我也不太会 说错了千万别BS我 大家共同进步嘛!

呵呵 一起努力 我刚学 很菜 多多指教


真的是想学习了.
2007-05-24 16:36
daijingchun
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-5-16
收藏
得分:0 
#include<stdio.h>
void main()
{int a,i;
unsigned long b;
long jicheng(int x);
scanf("%d",&a);
for(i=1;i<=a;i++)
b=jicheng(i);
b+=1;
printf("%ld\n",b);
getch();
}
long jicheng(int x)
{static long rezult=0;
int i,a=1;
for(i=1;i<=x;i++)
a=a*i;
rezult=rezult+a;
return rezult;
}
2007-05-24 16:42
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用wuyangiori在2007-5-24 16:36:24的发言:

呵呵 一起努力 我刚学 很菜 多多指教

他做的是将阶乘全部相加,是对的.


倚天照海花无数,流水高山心自知。
2007-05-24 17:03
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
其实可以更简单点,不要每次都做一次阶乘.可以这样的
long t=1;sum=0;
for( int i = 1 ; i <= n ; i ++ )
{
t *= i ;
sum += t ;
}
return sum ;

用递归做阶乘也划不来.呵呵.

倚天照海花无数,流水高山心自知。
2007-05-24 17:05
m282906003
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-5-28
收藏
得分:0 
学习

中国移动,您最好的选择
2007-05-28 15:33
快速回复:1+1!+2!+...+(n-1)!+n! 的程序 我不知道错在哪里了 ?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017507 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved