#include <cs50.h>
#include <stdio.h>
int main(void)
{
int pop_start;
int pop_end;
int year = 0;
int pop_val = 0;
do
{
pop_start = get_int("Population start size: ");
}
while (pop_start < 9);
// Prompt for end size
do
{
pop_end = get_int("Population end size: ");
}
while (pop_end < pop_start);
//calculate
while (pop_end < pop_val)
;
{
pop_val = pop_val + (pop_val / 3) - (pop_val / 4);
year++;
}
printf("years:%i\n", year);
}
我希望这个程序能按预期工作,并根据计算结果输出年份值。然而,不管输入值(pop_start)和(pop_end)如何,输出值(year)总是1,而它应该是一个更大的数字。我觉得我必须在这里遗漏一些东西,但我不太确定是什么。
1条答案
按热度按时间nom7f22z1#
我试用了你的代码,发现你的代码中有一些问题让你犯了错误。当你的问题得到上面的评论时,我做了一些重构,但是他们也指出了你的基本问题,即从来没有将“pop_瓦尔”变量初始化为零以外的任何值。我提供了下面的重构代码。
有一些有趣的地方要指出。
根据这些变更,以下是终端输出的测试运行。
给予这些重构的代码更改,看看它是否符合项目的精神。