永发信息网

求助另外一道C++题目

答案:4  悬赏:0  手机版
解决时间 2021-07-29 18:31
  • 提问者网友:低吟詩仙的傷
  • 2021-07-28 20:12

题目是:一个程序由两个C++源文件组成,在一个源文件中定义主函数main()并声明一个外部整型变量n,在另外一个源文件中定义一个不带参数的函数factorial(void),该函数用于计算变量n的阶乘。编写主函数mian()中输入一个整数并求它的阶乘。

两个函数都写好了,但是它们好像没有联系。

下面是我写的代码:

这个是那个含有函数factorial(void)的.CPP

long int fnFactorial()
{
int i;
long int iSum=0;
for(i=0;i<::x;i++)
{
iSum=iSum*i;
}
return iSum;
}

这个是包含主函数mian()的.CPP

#include<iostream>
#include"factorial.cpp"
int x;
using namespace std;

void main()
{
long int sum;
cout<<"Please input the value of x."<<endl;
cin>>x;'\n';

sum=fnFactorial();

cout<<"The sum is"<<sum<<endl;

system("pause");
}

最佳答案
  • 五星知识达人网友:行雁书
  • 2021-07-28 20:53

iSum 和i初始值不能等于0,如果为0,0*任何数,结果都为0!


long int fnFactorial(int n)
{
long int iSum=1;
for(int i=1;i<=n;i++)
{
iSum=iSum*i;
}
return iSum;
}


int main()
{
long int sum;
int x;
cout<<"请输入一个数:"<<endl;
cin>>x;
sum=fnFactorial(x);
cout<<"这个数的阶乘:"<<sum<<endl;
return 0;
}

全部回答
  • 1楼网友:末日狂欢
  • 2021-07-29 00:31

你这个factorial(void)的.CPP函数有一个地方错了,你看这里

long int iSum=0; for(i=0;i<::x;i++) { iSum=iSum*i; } 看明白了么??iSum等于0,乘多少次还是等于0~呵呵~以后仔细点儿~

  • 2楼网友:一把行者刀
  • 2021-07-28 22:54

很久没编过程序了,大概是还要有个factorial.h文件,然后在包含主函数mian()的.CPP文件中是:#include "factorial.h",而不是#include"factorial.cpp"。具体的我也忘了

  • 3楼网友:野慌
  • 2021-07-28 21:47
在卖弄函数中对fnFactorial进行调用,这就是两者的联系啊。但一般不这么做,主要是X,一般在函数中不使用::x,而是应该把x定义为参数,调用时传递过去。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯