|
应该是原来有一个帖子, 我还回过帖, 原帖找不到了 (因为音译名不同,没法搜到, 唉. 建议保留原英文名, 不要音译.)
runoob.com/cprogramming/c-examples-joseph-life-dead-game.html
30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
- #include<stdio.h>
- int main(){
- int count=0,//记录下船的人数 ,到15就终止程序
- a[30]={0},//储存30人信息,0代表在船上,1代表下船了
- i=0,//循环索引
- c=0;// 记录报数号码,到9就清零,由下一位重新报数
- while(1) {
- if(a[i]==0)c++;//记录报数号码
- if(c==9){
- count++;//下船人数加一
- a[i]=1; //标记这个人下船了
- printf("第%d号下船了。\n",i+1);
- c=0;//到9就清零,由下一位从0重新报数
- }
- if(count==15)break;//下船的人数到15就终止程序
- i++;//分析下一个人
- if(i==30)i=0; //将数组变成一个圈,循环往复
- }
- return 0;
- }
复制代码
袁博 cdy***98@163.com
4年前 (2019-02-10) |
|