MrJianD 2022-06-13 12:42 采纳率: 0%
浏览 15
已结题

为什么要小于n而不是小于等于n

img


我写的代码如下
#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

  • 写回答

2条回答 默认 最新

  • 赵4老师 2022-06-13 13:24
    关注

    “多一少一”问题占程序员常犯错误的10%以上!
    避免“多一少一”问题的方法之一是将比如<10甚至<5的数代入程序片断,掰手指头心算验证一下程序到底应该写为
    x、x-1、x+1中的哪个?
    <、<=、==、>、>=中的哪个?

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月19日
  • 修改了问题 6月13日
  • 创建了问题 6月13日