约瑟夫环

/*C实现:  约瑟夫环 */
#include "stdio.h"
#define N 28
void main()
{
    char S1S88[N][15]={
        "廖""吴""陈""颜""梅""甘",
        "威""钟""黄""李""应""协",
        "广""朱""陈""王""陈""胡",
        "纬""林""梁""婷""维""英",
        "利""张""辉""颖"};
    char bl[N];
    int i,n;
    int index;     //索引,轮到第几个人了  
    int lastnum=N;  //剩余人数
    int countNum=0; //报的数字
    for(i=0;i<N;i++
     { bl[i]=1;  } //28个人都参与报数
       
    printf("请输入从第几个人开始报数:");
    scanf("%d",&n);
    printf("\n从%s开始报数:",S1S88[n-1]);
    index=n-1;
    
    while(lastnum>1)  //如果剩余人数大于1 说明还要继续报数  : 核心代码
    {
        if(bl[index])
        {
            countNum++;
            if(countNum==3)
            {   countNum=0;
                bl[index]=0; //标记报了3
                lastnum--;  //剩余人数-1
            }
        }
        index++//下一个人  
        if(index==N)  //回来继续报数
          index=0;
    }
    //输出
    for(i=0;i<N;i++)
    {
      if(bl[i])
        printf("\n\n留下来的是:%s",S1S88[i]);    
    }  

}



//2013-11-25  小高

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值