| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1353 人关注过本帖
标题:用数组写的约瑟夫问题, 运行错误
只看楼主 加入收藏
寻梦飞翔
Rank: 1
等 级:新手上路
帖 子:76
专家分:9
注 册:2010-3-15
收藏
得分:0 
10楼的仁友,似乎不对呀,当总数是4时,退出去报3的应该留下1呀
可结果是:
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-03-22 21:57
小J
Rank: 8Rank: 8
等 级:等待验证会员
威 望:1
帖 子:282
专家分:704
注 册:2009-6-18
收藏
得分:0 
我这样以为是每次退出一人后还是从原先报1的人那里开始报数
但如果按你意思好像是每退出一人后从下一人开始报1,如果这样的话你可以直接输出sum,不用加1后输出。
2010-03-23 16:03
wyane
Rank: 2
等 级:论坛游民
帖 子:14
专家分:12
注 册:2009-9-18
收藏
得分:5 
程序代码:
#define N 100
main()
{int i,k,m,num[N],n;
scanf("%d",&n);
if(n>N) return 0;
  for(i=0;i<n;i++)
    num[i]=i+1;
  k=0;
  m=0;
  i=0;
     while(m<n-1)
      {if(num[i]!=0)
        k++;
       if(k==3)
        { num[i]==0;   /*问题在这一句吧,修改为num[i]=0赋值语句就可以了*/
           k=0;
           m++;}
          i=(i+1)%n;
      }
  i=0;
while(num[i]==0)
i++;
printf("\n%d",i); /*最后这几句是想打印出什么东西,我想按你的意思的话应该不是while,是不是要把所有出去的位置打印出来?*/
} 
2010-03-23 16:35
寻梦飞翔
Rank: 1
等 级:新手上路
帖 子:76
专家分:9
注 册:2010-3-15
收藏
得分:0 
回复wyane:
打印出最后留下的
2010-03-23 20:54
寻梦飞翔
Rank: 1
等 级:新手上路
帖 子:76
专家分:9
注 册:2010-3-15
收藏
得分:0 
回复wyane:
把“ { num[i]==0;   /*问题在这一句吧,修改为num[i]=0赋值语句就可以了*/”
改了以后运行结果还是不对
2010-03-23 20:58
寻梦飞翔
Rank: 1
等 级:新手上路
帖 子:76
专家分:9
注 册:2010-3-15
收藏
得分:0 
回复小J:
结果似乎还是不对
2010-03-23 20:59
快速回复:用数组写的约瑟夫问题, 运行错误
数据加载中...
 
   



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

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