-1

我正在上一年大学,在某个特定点上遇到了很多困难....

我需要编写一个代码来读取美国和巴西的人口,因为我知道美国的人口高于巴西。

问题是我需要计算 while 循环的数量,毕竟如果 1 意味着再多一年,如果它比它大 2 年是 2 等等。代码在这里并且是客观的...

int pAmericana, pBrasileira, ano;


int main(int argc, const char * argv[])
{


@autoreleasepool {

    NSLog(@"What year is it?");
    scanf("%i", &Ano);
    NSLog(@"which the American people?");
    scanf("%i", &pAmericana);
    NSLog(@"which the Brazilian people?");
    scanf("%i", &pBrasileira);

    while (pAmericana >= pBrasileira) {

        pAmericana=(pAmericana*0.2)+pAmericana;
        pBrasileira=(pBrasileira*0.4)+pBrasileira;

    }
     //FAILURE TO KNOW HOW TO COUNT HOW OFTEN HAPPENS THE LOOP .....
}
return 0;
}
4

4 回答 4

3

您可以在循环内使用计数器:

int i = 0;
while (pAmericana >= pBrasileira) {

    pAmericana=(pAmericana*0.2)+pAmericana;
    pBrasileira=(pBrasileira*0.4)+pBrasileira;
    i++;
}

NSLog(@"Loop count %i", i);
于 2013-03-15T14:39:08.533 回答
1

while在循环中添加一个计数变量是可行的。但你也可以使用for循环:

int i = 0;
for (; pAmericana >= pBrasileira; i++) {
    pAmericana=(pAmericana*0.2)+pAmericana;
    pBrasileira=(pBrasileira*0.4)+pBrasileira;
}

NSLog(@"Loop executed %d times", i);

您必须在循环之前声明变量,for以便它的值在循环之后可用。

注意 - 您可以将计算更改为:

int i = 0;
for (; pAmericana >= pBrasileira; i++) {
    pAmericana *= 1.2;
    pBrasileira *= 1.4;
}
于 2013-03-15T14:52:09.773 回答
0

您可以在循环外声明一个整数变量,while然后在循环内递增它,如下所示:

int i = 0; // Initialise the counter

while (pAmericana >= pBrasileira) {
  ...
  i++; // Increment the counter
}
于 2013-03-15T14:41:15.113 回答
0

int i = 0在while之前,i++;在while循环中,NSLog(@"Loops: %d", i);在循环之后。

于 2013-03-15T14:39:54.243 回答