int   main(int   argc,   char*   argv[])
{
  const   int   num   =   10;

  int   interval;

  int   a[num];

  for(int   i   =   0;i   <   num;   i++)
  a[i]   =   i   +   1;

cout < < "please   input   the   interval: ";
cin> > interval;
cin.get();

for(int   i   =   0;i <num;i++)
  {
      cout < <a[i] < < ", ";

  }
    cout < <endl;
 
int   k   =   1;

  int   m   =   -1;

  while(1)     //??????
    {
        for(int   j   =   0;   j   <   interval;)
          {
              m   =   (m   +   1)%num;   //?????
              if(a[m]!=0)       //??????
                j++;
          }

          if(k   ==   num)   break;

          cout < <a[m] < < ", ";
          a[m]=   0;
          k++;
    }

    cout < < "\nNo. " < <a[m] < < "   boy 's   win\n ";
  cin.get();

请解释下后面打问号的代码  

最难让我理解的是   while(1)   这是怎么回事呢?   请高手解答,谢谢!

while(1)
========
不达目的不罢休

while   (1)   这种写法   其实是利用C/C++   语言   的特性,在逻辑表达式里所有的非0   值都被当成true.     这里的意思就是while   条件永远都成立,在if   (k==num)   break;   退出这个while   循环.

建议仔细看看C   语言

谢谢大家的回复,我已经明白了

豪杰