【发布时间】:2021-11-01 22:31:23
【问题描述】:
代码在r 小于1(例如:0.99)时才起作用,但如果r = 1 没有出现:
#include <stdio.h>
#include <stdlib.h>
int main() {
int nr = 2;
float x1 = 0, x2 = 0, nextTerm = 0, r;
scanf("%f", &r);
while (nextTerm < r) {
nextTerm = (1 + x2 + x1 * x1) / 3;
x1 = x2;
x2 = nextTerm;
nr++;
}
printf("%d", nr);
return 0;
}
代码在r 小于1(例如:0.99)时起作用,但如果r = 1 什么都没有出现
【问题讨论】:
-
欢迎来到 SO!代码到底应该做什么?你期待什么输出?感谢您的澄清。
-
你调试和检查变量内容了吗?
-
如果什么也没有出现,说明你进入了无限循环。尝试在循环内打印 nextTerm 值。
-
尝试每次通过循环打印
nextTerm的值以查看序列。