发布网友
共3个回答
热心网友
#include <iostream.h>
int n;
int f(int n)
{
if(n=1)
return 1;
else
return f(n-1)*(n-1);
}
double cal(int n)
{
return 1/f(n);
}
int main()
{
double e;
e=0,n=1;
do
{
e=e+cal(n);
n++;
}while (cal(n)>=1e-6);
cout<<e<<endl;
return 0;
}
热心网友
if(n=1)
这个是错误的写法,=是赋值运算符。你应该改为 == ,这才是等于运算符。
热心网友
左操作数必须为左值 f(n)=f(n-1)*(n-1);
cal(n)=1/f(n); //违背赋值语句的规则
#include <iostream.h>
int n;
int f(int n)
{
if(n==1)
return 1;
else
return f(n-1)*(n-1);
}
double cal(int n)
{
return 1/f(n);
}
int main()
{
double e;
e=0,n=1;
do
{
e=e+cal(n);
n++;
}while (cal(n)>=1e-6);
cout<<e<<endl;
return 0;
}