这个bug在那

IT-学徒 2012-03-02 11:27:33
#include"stdio.h"
#define MAXSIZE 20
main()
{
int a[MAXSIZE],n,m,i,d,count;
printf("请输入两个数:");
scanf("%d %d",&n,&m);
printf("出队前:\n");
for(i=0;i<n;i++)
{
a[i]=i+1;
printf("%d ",a[i]);
}
printf("\n出队后:\n");
d=0;i=0;
while(d<n)
{
for(count=1;count<m;count++,i++)
{
while(a[i]==0)i++;
i=i%n;
}
while(a[i]==0)i++;
i=i%n;
printf("%d ",a[i]);
a[i]=0;
d++;

}
}
c
...全文
217 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT-学徒 2012-03-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhutou100hao 的回复:]
我表示楼主的程序没有bug~~

C/C++ code
请输入两个数:10 4
出队前:
1 2 3 4 5 6 7 8 9 10
出队后:
4 8 2 7 3 10 9 1 5 0
请按任意键继续. .
.
[/Quote]最后一个为零
Caworb 2012-03-09
  • 打赏
  • 举报
回复
这个…感觉怎么那么乱!既然是约瑟夫问题…那么怎么选取过的变量要填0?不是缩进的吗?然后选出的数字是没有0的吧!你的算法思想…不知道怎么说…
c090869 2012-03-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 z919860087 的回复:]

加了括号还是不行,
那就再加一句 i=i%n;在第二个while循环前面.
MOJUN18355311783 2012-03-08
  • 打赏
  • 举报
回复
可是运行是正常的
猪头小哥 2012-03-08
  • 打赏
  • 举报
回复
我表示楼主的程序没有bug~~
请输入两个数:10 4
出队前:
1 2 3 4 5 6 7 8 9 10
出队后:
4 8 2 7 3 10 9 1 5 0
请按任意键继续. .
.
xinen8721 2012-03-08
  • 打赏
  • 举报
回复
出对前,你初始化a[i] = 1,2,3,4,.....,20;
在while(a[i]==0)i++;
a[i] 永远不会为零的,会陷入死循环。
ROM__yu 2012-03-08
  • 打赏
  • 举报
回复
while(d<n)//这不是一个死循环?
IT-学徒 2012-03-08
  • 打赏
  • 举报
回复
加了括号还是不行,
c090869 2012-03-03
  • 打赏
  • 举报
回复
好像缺两对花括号,呵呵
while(a[i]==0){i++;i=i%n}
什么时候约毖夫问题可以用一维数组解决的?
IT-学徒 2012-03-03
  • 打赏
  • 举报
回复
这是一个瑟夫问题
请输入两个数:10 4
出队前:
1 2 3 4 5 6 7 8 9 10
出队后:
4 8 2 7 3 10 9 1 5 0

请输入两个数:10 8
出队前:
1 2 3 4 5 6 7 8 9 10
出队后:
8 6 5 7 10 3 2 9 4 1

请输入两个数:10 7
出队前:
1 2 3 4 5 6 7 8 9 10
出队后:
7 4 2 1 0 0 0 0 0 0
羽飞 2012-03-03
  • 打赏
  • 举报
回复
楼主的这个程序是想做什么,想得到什么样的结果
starsoft007 2012-03-03
  • 打赏
  • 举报
回复
描述问题能不能清楚一点?你是来求助的,不是来出考题的。
你的程序出了什么问题?有错误的话,错误信息是什么?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧