关于C++,数组的题目

来源:百度知道 编辑:UC知道 时间:2024/05/16 05:16:31
17个人围成圈,编号为1至17,从1号开始报数,报到3的倍数的人离开,一直数下去,直到最后只剩下1个人,求此人的编号?注:{要用数组来做此题目} 我是一个初学者,所以尽可能写的简单一些吧,并且要是有解释就更好了,谢了啊!
请写出程序,并且简单的解释一下,在关键的地方,加以注释
我要是自己可以查到的话,还用提问吗,真是的,不会或是不回答就不瞎留言

#include<iostream.h>
void main()
{
int arrary[17]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17};
int i=0; //数组中的变量
int count=0; //每个非零数的计数
int exit_Ncount=0; //每个为零数的计数
while(exit_Ncount<16) //如果为0的数大于16,则此时为0的数为16,说明已经有了16个数为0
{
if(arrary[i]!=0) //如果数组中的数不为0时
{
++count; //当不为0时,对不为0的数计数
if(count%3==0) //判数不为0的数是否能被3整除
{
arrary[i]=0; //如果能被整除,则这个数被赋值为0
++exit_Ncount; //且对为0的数进行计数加1
}
}
i++; //当进行一次的运行后,对i加1,不论这个数是否为0
if(i>16) //如果这个数大于16,且此时的 i的值为17
i=0; //则将i的值赋值为0

}
for(int j=0;j<=16;j++) //定义一个变量j,条件为j<=16
if(arrary[j]!=0)