2013-03-15 98 views
-1

我正在上大学的一年,在特定的点上有很多困难......如何计算同时执行的重复次数?

我需要制作一个代码,读取美国和巴西的人口,知道美国人口是高于巴西。

问题是我需要计算while循环的数目,毕竟如果1意味着1年多一年,如果是2年大的话是2等等。代码是在这里,是Objective-C的...

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; 
} 

回答

3

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

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

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

NSLog(@"Loop count %i", i); 
0

int i = 0的而在此之前,在while循环i++;NSLog(@"Loops: %d", i);

0

您可以声明while环外一个整型变量,然后在循环中递增,就像这样:

int i = 0; // Initialise the counter 

while (pAmericana >= pBrasileira) { 
    ... 
    i++; // Increment the counter 
} 
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; 
}