哪位大神给看看,我的C++程序哪里出错了,我是求n阶阶乘的和,怎么一运行就,求出来的是n

阶的阶乘,而不是它的和。unsignedintfun(unsignedintn){unsignedintf;if(n==1)f=1;elsef=fun(n-1)*n;re... 阶的阶乘,而不是它的和。
unsigned int fun(unsigned int n)
{
unsigned int f;
if (n==1)
f=1;
else
f=fun(n-1)*n;

return f;

}
#include<iostream>
using namespace std;
void main()
{
cout<<"请输入你要求的阶乘数:";
unsigned int n,m,sum;
cin >>n;
m=fun(n);
while (n>0)
{ sum+=m;
n--; }
cout<<"和为:"<<m<<endl;
}
展开
 我来答
IT孤鹜
2014-06-07 · TA获得超过4198个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3574万
展开全部
unsigned int fun(unsigned int n)
{
unsigned int f;
if (n==1 || n==0) //问题
f=1;
else
f=fun(n-1)*n;
 
return f;
 
}
#include<iostream>
using namespace std;
void main()
{
 cout<<"请输入你要求的阶乘数:";
 unsigned int n,m,sum=0; //问题
 cin >>n;
m=fun(n);
while (n>0)
 {  sum+=m; 
 n--;
 m=fun(n);//问题
}
cout<<"和为:"<<sum<<endl;//问题
}
月光疾风_Free
2014-06-07 · TA获得超过681个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:214万
展开全部
#include <stdio.h>
int jiecheng(int N);

int main()
{
     int i,m;
     int sum = 0;
     printf("请输入一个整数:");
     scanf("%d",&m);
     for(i=1;i<=m;i++)
     {

          sum += jiecheng(i);
     }
     printf("%d阶阶乘之和为:%d\n",m,sum);
     return 0;
}

int jiecheng(int N)
{
 if(N==0 || N==1)
  return 1;
 else
  return N*jiecheng(N-1);
}

运行结果如下:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2014-06-07 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6617万
展开全部
看看这里:cout<<"和为:"<<m<<endl;。你输出的是m,而不是和sum!sum要初始化为0.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jk1194144043
2014-06-07 · TA获得超过397个赞
知道小有建树答主
回答量:373
采纳率:100%
帮助的人:156万
展开全部

你的程序就不多说了,还要好好学习哟 ,把你的程序改了如下:

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
p403145
2014-06-07 · 超过14用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:34.2万
展开全部
你的程序没问题啊,输入3 输出6 输入4 输出24
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式