为大输入无限循环 运行
Loops running infinitely for big inputs
我是自学的,我正在研究一个人口增长问题,当我输入一个我想达到的大尾数时,我遇到了无限循环的问题运行。
#include <cs50.h>
#include <stdio.h>
int main(void) {
// TODO: Prompt for start size
int n;
do {
n = get_int("Enter the starting size of your llamas: ");
} while (n <= 8);
// TODO: Prompt for end size
int j;
do {
j = get_int("Enter the Ending size of your llamas: ");
} while (j <= n);
// TODO: Calculate number of years until we reach threshold
int k = 0;
do {
n = n + (n/3) - (n/4);
printf("The number is %i\n", n);
k++;
} while (n != j);
// TODO: Print number of years
printf("The number is %i\n", k);
}
答案应该是羊驼达到最终尺寸所需的年数,但我无法输入大量的最终尺寸,你能帮我找出问题所在吗,也许在我的数学或符号。提前致谢。
对于大数,n
在每次迭代中递增超过 1
,因此它有可能变得大于 j
而不是先等于它。
将测试 while(n != j);
更改为 while(n < j);
我是自学的,我正在研究一个人口增长问题,当我输入一个我想达到的大尾数时,我遇到了无限循环的问题运行。
#include <cs50.h>
#include <stdio.h>
int main(void) {
// TODO: Prompt for start size
int n;
do {
n = get_int("Enter the starting size of your llamas: ");
} while (n <= 8);
// TODO: Prompt for end size
int j;
do {
j = get_int("Enter the Ending size of your llamas: ");
} while (j <= n);
// TODO: Calculate number of years until we reach threshold
int k = 0;
do {
n = n + (n/3) - (n/4);
printf("The number is %i\n", n);
k++;
} while (n != j);
// TODO: Print number of years
printf("The number is %i\n", k);
}
答案应该是羊驼达到最终尺寸所需的年数,但我无法输入大量的最终尺寸,你能帮我找出问题所在吗,也许在我的数学或符号。提前致谢。
对于大数,n
在每次迭代中递增超过 1
,因此它有可能变得大于 j
而不是先等于它。
将测试 while(n != j);
更改为 while(n < j);