int i;
float h;
1/h=0;
for(i=1;1<=1000;++i)
{
(1/h)+=(1/i);
printf("%f",h);
}
这是我的代码。我试图根据这个公式找到 h 的值:
(1/h)=(1/1)+(1/2)+(1/3)+....+(1/1000)
但是我需要执行 1000 步才能找到 h
(1/1)
和
(1/1)+(1/2)
和
(1/1)+(1/2)+(1/3)
依此类推,直到
(1/1)+(1/2)+(1/3)+...+(1/1000)
我认为我的循环是正确的,但问题是我收到此错误消息
[Error] lvalue required as left operand of assignment
对于行 1/h=0
和 (1/h)+=(1/i)
那么我的错误是什么以及解决方法?谢谢。
最佳答案
因为 1/h
是一个表达式而不是左值,所以您不能分配给表达式。您可以在 c 中了解什么构成左值标准。
试试这个
int i;
double h;
double u;
u = 0;
for (i = 1 ; i <= 1000 ; ++i)
u += 1.0 / (double) i;
h = 1.0 / u;
fprintf(stdout, "1/h = %f\n", h);
该值是否正确?
关于C错误: lvalue required as left operand of assignment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34933924/