int _person[13] = {0};
int _flag = 0; // 用来标记1,2,3
int _over = 0; // 13个人,如果有12个人被标记为3,那么叛徒也就找出来了,游戏也就结束了
for (int i = 0; i < 13; i++) {
_person[i] = arc4random()%901+101;
}
for (int i = 0; _over < 13 - 1; i++) {
if (i > 12) { // 13个人,数组下表最大是12,如果超过12就标记为0重新开始
i = 0;
}
if (_person[i] !=0 ) { // 这里是利用下面,将数到3的人重置为0,如果不是0,那么标记就+1
_flag++;
}
if (_flag == 3) { // 数到3的人标记为0,游戏结束标记也就+1
_flag = 0;
_person[i] = 0;
_over++;
}
}
for (int i = 0; i < 13; i++) { // 没被标记为0的人,就是叛徒了
if (_person[i] != 0) {
printf("出卖耶稣的叛徒是%d号叫%d的家伙",i+1,_person[i]);
}
}
耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒。
最新推荐文章于 2020-09-16 19:45:08 发布