题目是有m个人玩游戏,n为不能说的数字,说到n的人退出游戏,下一个人从新报数,只要游戏剩下最后一个人为止时,游戏结束。
从要求从可以看出人数不确定,是一个变成数组。
定义变长数组,从键盘输入人数,并输入不能说的数,然后将人数和敏感数字传入函数。
先用for循环给每位玩家一个标志,表示玩家的参赛资格。
使用一个while循环,条件判断当只剩下最后一个人时,退出循环。最后使用一个for循环将还有参赛资格的玩家选出来,就是最后的赢家
代码演示:
游戏运行过程: 1 2 3 4 5,如 2 为不能说的数字,第一次报数为 1 2 1 2 1,则2 4退出游戏,第二次参加游戏的人为 1 3 5 ,根据上一次报数,这次报数是 2 1 2。最后剩下的人是三号
不熟练的小伙伴,可以不使用变长数组,和从键盘输入。可以直接定义
代码如下:
#include <stdio.h>
void good_luck(int arr[],int x,int len)
{
int k=0,count=0,i;
for(i=1;i<=len;i++)
{
arr[i]=1; //给每个玩家参赛资格
}
while(k!=