2 回答
TA贡献1条经验 获得超0个赞
int who_win(char player[], int N)
{
int i;
for(i=0; i<N; i++) player[i] = 0; // 初始为0:全部人员在线
int index = 0; // 从player[0]开始玩
int count = 0; // 报数
int kicked = 0; // 出局的人的总数
while(1)
{
if(kicked == N - 1) break; // 若有N-1个人出局,则游戏结束
if(player[index] == 0) // 此人尚未出局, 则报数
{
count ++; // 报数1,2,3...
if(count == 3)
{
player[index] = 1; // 标识此人出局
count = 0;
kicked ++;
printf("Player %d is kicked out!\n", index+1);
}
}
index ++ ; // 下一位置
if(index >= N) index = 0;
}
// 找到剩下的那个人
for(i=0; i<N; i++)
{
if(player[i] == 0) return i;
}
return -1;
}
int main()
{
char people[100];
int win =who_win(people,100);
printf("%d win!",win+1);
return 0;
}
- 2 回答
- 0 关注
- 1776 浏览
添加回答
举报