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日

悬赏问题

  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器