在c中的for循环中没有发生增量

时间:2017-06-07 12:21:36

标签: c for-loop

我用C编写了一个程序,其中一个城镇的人口每年增加10%,但变量pop没有在for循环中递增。

这是我的代码:

#include <stdio.h>

int main() { // B main
    int pop = 100000, year, popatend;
    printf("\nyear\t\t\tpopulation\n\n");
    for (year = 1; year <= 10; year++) { // B loop
        popatend = pop * (10 / 100);
        pop = pop + popatend;

        printf("%d\t\t\t %d\n", year, pop);
    } // B loop
} // B main

这是输出:

year            population

   1             100000
   2             100000
   3             100000
   4             100000
   5             100000
   6             100000
   7             100000
   8             100000
   9             100000
  10             100000

我在Eclipse中以ubuntu mate。

创建了这个程序

5 个答案:

答案 0 :(得分:4)

您有整数除法,10/100将被截断为零。请改用10.0 / 100.0(或普通0.1)。

答案 1 :(得分:3)

10/100是整数除法,因此为0。

答案 2 :(得分:3)

进行整数除法时:

Uncaught TypeError: Cannot read property 'elements' of undefined

popatend=pop*(10/100); 的值为popatend,因为0将评估为(10/100)

因此,当您将其添加到0时,pop的值不会更改。

我相信可以通过将其更改为

来解决此问题
pop

答案 3 :(得分:0)

当您执行10/100时,您正在使用整数除法,因此它实际上是截断为0.1而不是返回0。因此,您要将popatend设置为每个循环(popatend = pop * 0)为零,并且每次都有效地向pop添加零。

要解决此问题,您可以投射或更改poppopatend的类型,也可以使用10f/100f

答案 4 :(得分:-2)

你有(year = 1; year <= 10; year++),这里year从未作为计算的一个因素,这就是原因。