| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2025 人关注过本帖
标题:N个人围成一圈的一道题(问题更新)
取消只看楼主 加入收藏
forice
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-8-25
收藏
 问题点数:0 回复次数:2 
N个人围成一圈的一道题(问题更新)
题目如下: 有N个人围成一圈,顺序排号.从第一个人开始报数,从1报到3,凡报到3的人退出圈子,问最后留下的是原来第几号的那位.

程序如下:
main()
{
int *p,num[20],i,k,m,n;
p=num;
scanf("%d",&n);
for(i=0;i<n;i++)
*(p+i)=i+1;
i=0; //i为每次循环时的计数变量
m=0; //m为退出人数
k=0; //k为按1,2,3报数时的计数变量
while(m<n-1) //当未退出人数>1时
{
if(*(p+i)!=0)
k++;
if(k==3) //对退出的人的编号置0
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n) //报数到最后,i恢复为0
i=0;
}
while(*p==0) //请问这句话是什么意思? *p不是指向num数组的首地址吗,怎么会是0?
p++; //这句话又是什么意思? (我知道最后输出的*p是最后留在圈子里的人,但是用这语句判断我看不懂,望请教)
printf("%d",*p);
}

[此贴子已经被作者于2006-9-18 23:47:34编辑过]

搜索更多相关主题的帖子: 变量 num int main 
2006-09-18 23:19
forice
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-8-25
收藏
得分:0 
非常明白,感谢
2006-09-18 23:35
forice
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-8-25
收藏
得分:0 
对了,还有一个小问题,就是p->&num;
这个跟序数n有什么关联,它们是用什么联系起来的?
就是说p指向num数组,但是num数组里边的内容都不知道是什么.num跟n有什么关系?
2006-09-18 23:47
快速回复:N个人围成一圈的一道题(问题更新)
数据加载中...
 
   



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

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