不知道怎么形容这个问题,但是得不出结果
#include "stdafx.h"
#include "iostream.h"
void main()
{
const int num =17;
int a[num];
for(int i=0; i<num; i++)
a[i] =i+1;
for(i=0; i<num; i++)
cout <<a[i] <<",";
cout <<endl;
int k=1;
i=-1;
while(1)
{
for(int j=1; j<4 ;) //这个语句
{
i=(i+1) %num;
if(a[i] !=0)
j++;
}
if(k ==num) break;
a[i]=0;
k++;
}
cout <<endl <<"No. " <<a[i] <<" won. " <<endl;
}
这是17个小孩围成圈,然后数数,逢3的倍数就离开.
这个代码可以通过,但我原来是用 for(int j=1; (j%3==0) ;) ,可是通过编译,确在运行的时候就死掉了.为什么?
for语句的第二个条件不是循环停止的条件嘛.我的想法是j++到3时候,刚好j%3==0成立,循环停止.为什么会出现这个错误?