#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
int i,s;
s=1;
int n=1;
while(1)
{
if(s>a)
break;
else
{
s=s+1/(s+1);
n++;
}
}
printf("%d",n);
return 0;
}
为什么会这样呢,应该怎么改
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- PJLssd 2022-02-02 10:48关注
这个整形除以整形还是整形,应当用双精度除以整形的双精度
还有你break那里的缩进很诡异啊
而且顺序也有问题#include<stdio.h> int main() { int a; scanf("%d",&a); int i,s; s=1; int n=1; while(1){ s=s+(1.0/(s+1)); if(s>a) break; n++; } printf("%d",n); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
- ¥20 wpf datagrid单元闪烁效果失灵
- ¥15 券商软件上市公司信息获取问题
- ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
- ¥15 Android studio AVD启动不了
- ¥15 陆空双模式无人机怎么做
- ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
- ¥15 C#中的编译平台的区别影响
- ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
- ¥15 电脑蓝屏logfilessrtsrttrail问题