error C2106问题

发布网友

我来回答

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;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com