| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 363 人关注过本帖
标题:帮忙解释一程序中的while语句
取消只看楼主 加入收藏
huwengui
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:166
专家分:158
注 册:2011-4-22
结帖率:83.33%
收藏
已结贴  问题点数:2 回复次数:0 
帮忙解释一程序中的while语句
/* n 个人围成一圈, 并依次编号1~n,。从编号为1 的人开始,按顺时针方向每隔一人选出一个,
剩下的人重新围成一圈,如此循环直到剩下两人,这剩下的两人就是幸运儿。如果你想成为最后两个
幸运儿,请问开始时应该站在什么位置?(设3<=n<=50)
输入:开始时的人数n
输出:第1 行是选出顺序,第2 行是两名幸运儿的开始位置(按升序排列),位置编号之间用一个空格
分开。
示例
输入:
12
应该的输出:
2 4 6 8 10 12 3 7 11 5
1 9*/
#include"stdio.h"
#include"string.h"
#include"conio.h"
#define N 30
main()
{
int num[N],i,j,temp,x;
i=temp=0;
printf("input,please!");
scanf("%d",&x);
for(j=0;j<x;j++)
   num[j]=1;
while(temp!=2)
{
   temp=0;
   for(j=0;j<x;j++)
    temp+=num[j];
   if(temp==2)break;
   if(num[i])
   {
    while(num[++i]!=1&&i<x);
    if(i==x)
    {
     i=-1;while(num[++i]!=1);
    }
    num[i]=0;
   }
   i++; if(i==x)i=0;
}
for(i=0;i<x;i++)
   if(num[i]==0)printf("%d ",i+1);
   printf("\n");
for(i=0;i<x;i++)
   if(num[i])
    printf("%d ",i+1);
   getch();
}
搜索更多相关主题的帖子: 顺时针 幸运儿 
2011-05-10 16:56
快速回复:帮忙解释一程序中的while语句
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016356 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved