[英]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 < 150
为true
,循环再次执行。 首先,它增加week
所以现在week == 8
,然后,它计算people
。 (146 - 8) * 2 == 276
,所以people
现在是276
然后它执行了printf()
语句。 只有现在, 276 < 150
为false
,然后循环终止。
因为我们知道当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.