| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 408 人关注过本帖
标题:求助!求助!n个人围成一圈,顺序排号。这个问题有几行没想明白??
取消只看楼主 加入收藏
autumnyellow
Rank: 2
等 级:论坛游民
帖 子:72
专家分:75
注 册:2015-4-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
求助!求助!n个人围成一圈,顺序排号。这个问题有几行没想明白??
*n个人围成一圈,顺序排号。从第1个人开始报数(从1 到3)凡报到3的人退出圈子,问最后留下是原来的第几号
*/
#include<stdio.h>
int main ()
{
    int i,k,m,n,num[50],*p;
    printf("\ninput number of person:n=");
    scanf_s("%d",&n);
    p=num;
    for(i=0;i<n;i++)
        *(p+i)=i+1;   //从1 到n为每个人编号
    i=0;  //i为每次循环计数变量
    k=0;  //k为报1,2,3的计数变量
    m=0;  //m为退出人数
    while(m<n-1)//当剩下1个人时,退出循环
    {
        if(*(p+i)!=0)
            k++;
        if(k==3)
        {
            *(p+i)=0;//对退出人编号为0
            k=0;
            m++;
        }
        i++;
        if(i==n)
            i=0;//报到尾数i恢复0
    }
    while(*p==0)
               p++;   //这两行没弄明白怎么回事????怎么成了最后1人的号了????
    printf("The last one is NO.%d",*p);
    return 0;
}


/*
input number of person:n=8
The last one is NO.7
请按任意键继续. . .*/
2015-09-06 09:29
autumnyellow
Rank: 2
等 级:论坛游民
帖 子:72
专家分:75
注 册:2015-4-14
收藏
得分:0 
回复 2楼 林月儿
姐姐,我是自学的,能不能说详细些,没想明白p++是怎么确定是哪个号的
2015-09-06 10:01
快速回复:求助!求助!n个人围成一圈,顺序排号。这个问题有几行没想明白??
数据加载中...
 
   



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

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