谢谢帮个忙改一下!!!

nesle 2003-07-17 12:29:09
#include <iostream>
#include <stdlib.h>
using namespace std;
long sum(int nn);
long order(int ii);
int nn;
long nSum;
int main()//计算sum=1!-2!+3!-4!……直到n
{
int n;
cout<<"please input num:";
cin>>n;
cout<<"sum="<<sum(n);

system("pause");
}
long sum(int nn)
{


int i;
int j=1;
for(int i=1;i<=nn;i++)
{
nSum+=order(i)*j;
j*=-1;
return nSum;
}

}

long order(int ii)//计算阶乘
{
if(ii==1)
return 1;
return order(ii-1)*ii;
}
开始数组溢出,现在运行不对,帮忙改一下!谢谢
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zteliubin 2003-07-17
  • 打赏
  • 举报
回复
long sum(int nn)
{


int i;
int j=1;
for(int i=1;i<=nn;i++)
{
nSum+=order(i)*j;
j*=-1;
}
return nSum;

}
cdocument 2003-07-17
  • 打赏
  • 举报
回复
楼上的正确!
wjiangwin 2003-07-17
  • 打赏
  • 举报
回复
有没有搞错,把return nSum;移到大括号的外面去。
bigtea 2003-07-17
  • 打赏
  • 举报
回复
还有其他问题
#include <iostream>
#include <stdlib.h>
using namespace std;
long sum(int nn);
long order(int ii);
//int nn;不必要

int main()//计算sum=1!-2!+3!-4!……直到n
{
int n;
cout<<"please input num:";
cin>>n;
cout<<"sum="<<sum(n);

system("pause");
}
long sum(int nn)
{

long nSum=0; /*放在这声明,要注意初始化*/
//int i; 多此一举
int j=1;
for(int i=1;i<=nn;i++)
{
nSum+=order(i)*j;
j*=-1;

}
return nSum;
}

long order(int ii)//计算阶乘
{
if(ii==1)
return 1;
return order(ii-1)*ii;
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧