翻看了闲置了好久的一本c语言书,上面有个题目看着还是比较简单,自己一写了不得,好难啊。呜呜,

肿么可以这样???


以下是网友典型的实现:


#include <stdio.h>


void main()

{

 int i = 0;

 int n = 0;

 int out = 0; //退出的人数

 int num = 0; //报数

 int a[1024] = {0}; //0表示退出圈子


 printf("Input n:");

 scanf("%d", &n);

 for (i = 0; i < n; i++)

 {

  a[i] = 1;

 }


 i = 0;

 while (out != n-1)

 {

  if (a[i] == 1)

  {

   num++;

  }

  if (num == 3)

  {

   a[i] = 0;

   num = 0;

   out++;

  }

  i++;

  if (i == n)

  {

   i = 0;

  }

 }


 for (i = 0; i < n; i++)

 {

  if (a[i] == 1)

  {

   printf("最后留下的人是%d号.\n", i+1);

   break;

  }

 }

}