| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 724 人关注过本帖
标题:一个习题看不懂 来个人帮我看看啊
取消只看楼主 加入收藏
honghong88
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2011-10-16
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:1 
一个习题看不懂 来个人帮我看看啊
#include <iostream>
using namespace std;
int main()
 {int i,k,m,n,num[50],*p;
  cout<<"input number of person: n=";
  cin>>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)          // 当退出人数比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++;
  cout<<"The last one is NO."<<*p<<endl;
  return 0;



}


红色这段 这个循环体有 可能m>=n-1的时候吗 我的想象在应该是  的 while (m<n-2)的时候 循环体才有 可能结束
搜索更多相关主题的帖子: include person number 
2011-11-15 19:56
honghong88
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2011-10-16
收藏
得分:0 
我有一点疑问的是  当最后剩下2个人的时候 计数 器 k无法 再等于3  因此也无法 在退出一个人  我认为最近剩下的情况有可能是2个人呢 不知道这样想 对不对
2011-11-17 17:53
快速回复:一个习题看不懂 来个人帮我看看啊
数据加载中...
 
   



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

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