我写的代码如下
#include "stdio.h"
int main(void){
int n;
float i, s=1,k=1;
scanf("%d",&n);
for(i=1.0;i<=n;i=i+1.0){
k=1.0+k+i;
s=s+1.0/k;
}
printf("%.6f",s);
}
输入11
for判断语句小于等于n得到的结果是1.846154
for判断语句改成小于n得到的结果就是1.833333了,我很不理解,题目给的很明确是加到n 那为什么要小于n
“多一少一”问题占程序员常犯错误的10%以上!
避免“多一少一”问题的方法之一是将比如<10甚至<5的数代入程序片断,掰手指头心算验证一下程序到底应该写为
x、x-1、x+1中的哪个?
<、<=、==、>、>=中的哪个?