用C++编写程序,计算 1!+2!+3!+……+N! .要求:编写一个子函数计算阶乘

这是我写的代码:
#include "stdafx.h"
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
int N,i, sum=0;
int f(int i)

{int t=1,j;
for(j=1;j<=i;j++)
t=t*j;
return t;
}

cout<<"输入N:";
cin>>N;
for(i=1;i<=N;i++)
sum=sum+f(i);
cout<<"sum="<<sum<<endl;
return 0;
}

求纠错,或代码

第1个回答  2013-01-01
#include <iostream>
using namespace std;
int f(int i)
{int t=1,j;
for(j=1;j<=i;j++)
t=t*j;
return t;
}
int main(int argc, char* argv[])
{
int N,i, sum=0;
cout<<"输入N:";
cin>>N;
for(i=1;i<=N;i++)
sum=sum+f(i);
cout<<"sum="<<sum<<endl;
return 0;
}
把f函数放main外面就ok了本回答被提问者采纳
第2个回答  2013-01-01
你把函数f放在外面试试,下面是c的:
#include"stdio.h"
int f(int i)
{int t=1,j;
for(j=1;j<=i;j++)
t=t*j;
return t;
}
int main(int argc, char* argv[])
{
int N,i, sum=0;
printf("输入N:");
scanf("N",&N);
for(i=1;i<=N;i++)
sum=sum+f(i);
printf("sum=%d/n",sum);
return 0;
}
改一下就好了,应该是定义变量的问题
第3个回答  2013-01-01
#include <iostream>
using namespace std;
int f(int i)
{
int t=1,j;
for(j=1;j<=i;j++)
t=t*j;
return t;
}
int main(int argc, char* argv[])
{
int N,i, sum=0;

cout<<"输入N:";
cin>>N;
for(i=1;i<=N;i++)
sum=sum+f(i);
cout<<"sum="<<sum<<endl;
return 0;
}

函数不能嵌套定义。所以int f(int i) 函数需要放在主函数外面。修改后的代码可以正确运行。
第4个回答  2013-01-01
cout<<"阶乘求和部分:"<<endl;
int N,j,sum=0;
cin>>N;
cout<<"1!+";
for(int i=1;i<=N;i++)
{
int constant=1;
for(j=1;j<=N;j++)
constant=constant*j;
if(j!=1)
cout<<"+"<<i<<"!";
sum=sum+constant;
}
cout<<"="<<sum<<endl;
这是关键代码,你自己加上变量就可以用了,这是我以前的作业
第5个回答  2013-01-01
#include <iostream>
int factorial(int n)
{
if(n==0)
return 1;
else
return n*factorial(n-1);
}

int _tmain(int argc, _TCHAR* argv[])
{
int n=0,sum=0;
std::cout<<"please input N: ";
std::cin>>n;
for(int i=1;i<=n;i++)
sum+=factorial(i);
std::cout<<"the factorial is: "<<sum<<std::endl;
return 0;
}
相似回答