繁体   English   中英

C 程序使用 while 循环不以整数计数 150 退出的问题

[英]Problem with C program not exiting at integer count 150 by using a while loop

我想知道我是否可以获得一些帮助来解决我遇到的问题。

基本上,当人数达到 150 时,我试图通过使用 while 循环来结束我的程序。

我的数学似乎是正确的,但出于某种原因,当人数达到 276 时,程序就结束了。

任何人都可以帮助解决这个问题吗? 谢谢!

代码输入:

int main () { 
    // declare variables
    int weeks=0, people=5;
    while (people < 150) {
        weeks++;
        people=(people-weeks)*2;
        printf("On week %d Professor Rabnud's Social Media Group has %d people\n", weeks, people);
    } 
    // end program
    return 0; 
}

代码输出:

On week 1 Professor Rabnud's Social Media Group has 8 people
On week 2 Professor Rabnud's Social Media Group has 12 people
On week 3 Professor Rabnud's Social Media Group has 18 people
On week 4 Professor Rabnud's Social Media Group has 28 people
On week 5 Professor Rabnud's Social Media Group has 46 people
On week 6 Professor Rabnud's Social Media Group has 80 people
On week 7 Professor Rabnud's Social Media Group has 146 people
On week 8 Professor Rabnud's Social Media Group has 276 people
int main () { 
    // declare variables
    int weeks=0, people=5;
    while (people < 150) {
        weeks++;
        people=(people-weeks)*2;
        printf("On week %d Professor Rabnud's Social Media Group has %d people\n", weeks, people);
    } 
    // end program
    return 0; 
}

如您所见,当week == 7 people == 146因为146 < 150true ,循环再次执行。 首先,它增加week所以现在week == 8 ,然后,它计算people (146 - 8) * 2 == 276 ,所以people现在是276然后它执行了printf()语句。 只有现在, 276 < 150false ,然后循环终止。

因为我们知道当week == 1那么people == 8我们可以这样做:

int main () { 
    // declare variables
    int weeks=1, people=8;
    while (people < 150) {
        printf("On week %d Professor Rabnud's Social Media Group has %d people\n", weeks, people);
        weeks++;
        people=(people-weeks)*2;
    } 
    // end program
    return 0; 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM