回复 4楼 尔二
年轻人
题目是这样滴
假如有11个人 依次编号为: 1 2 3 4 5 6 7 8 9 10 11
--------------------------------------------
报数 1 2 1 2 1 2 1 2 1 2 1
报1的编号为: 1 3 5 7 9 11
如果按照实际操作呢,挨个抡过去就行了,一次过,谁报1谁站出来。所以一个循环就可以了
而你用了两个循环 一个是 for 一个是do while. 不知道你那个do while是不是把站出来的人 轮番揍一顿(如果是的话,有必要这么写)
但是一次过就行了,一次就行
所以 for(i=1;i<=11;i++) 就会得到 1 2 3 4 5 6 7 8 9 10 11的编号
再针对每个编号的处理 就是
for(i=1;i<=11;i++)
{
if(i%2!=0) /*是1的站出来,因为只有报数1和2,那么可以理解为是奇数位的就站出来,根据奇数的特性,奇数除以2是非整除,由此得判断它是否为奇数*/
printf("%d ",i);/*打印就是站出来的意思*/
}
这里是特列11,把11换成n 那就是你输入的n