C语言中如何跟踪变量值?求人口达标所需年数的计算方法
问题分析与修正
首先你的代码逻辑有两个核心问题:
- 循环条件写反了:
s == e只有起始规模和目标规模完全相等时才会执行循环,正常情况我们是要等s增长到e,所以条件应该是s < e(如果目标规模比起始小,就改成s > e,但人口增长场景一般是e更大)。 - for和while嵌套完全多余,要么用for循环计数,要么用while循环,没必要叠在一起。
修正后的代码示例
// 计算达到目标规模所需年数 int years = 0; // 当当前规模还没到目标时,持续循环 while (s < e) { s = s + (s / 3) - (s / 4); // 每年的人口变化 years++; // 每完成一年,计数加1 } // 或者用for循环写法: // for (int years = 0; s < e; years++) { // s = s + (s / 3) - (s / 4); // }
如何跟踪变量值
要观察每一年的变量变化,直接在循环里加printf打印即可,比如:
int years = 0; while (s < e) { printf("第%d年,当前人口:%d\n", years, s); s = s + (s / 3) - (s / 4); years++; } printf("最终达到目标需要%d年,此时人口:%d\n", years, s);
这样每次循环都会输出当前的年份和人口数,你就能清晰看到变量的变化过程,方便调试逻辑。
内容的提问来源于stack exchange,提问作者Shah Hassan
相关产品推荐
相关产品推荐

