以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  关于joseph环的问题[急等]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=30243)


--  作者:piddy
--  发布时间:4/9/2006 3:23:00 PM

--  关于joseph环的问题[急等]
main()
{
int p[20];
int n,s,s1,m,i,j,k,w;
printf("*****now start the sys*****\n");
printf("please enter the number n:\n");      //一共n个人
scanf("%d",&n);
printf("please enter the first number s:\n");    //从第s个开始报数
scanf("%d",&s);
printf("please enter the m:\n");          //数到第m个人出列 
scanf("%d",&m);
printf("please enter the data:\n");
for(i=1;i<=n;i++)
scanf("%d",&p[i]);

s1=s;
k=n;
for(i=n;i>=2;i--)
{s1=s1+m-1;
s1=s1%n;
if(s1==0)s1=i;
w=p[s1];
for(j=s1;j<i;j++)
p[j]=p[j+1];
p[i]=w;}

for(k=1;k<=(n/2);k++)
{w=p[k];p[k]=p[n-k+1];p[n-k+1]=w;}
for(i=1;i<=n;i++)
printf("%4d",p[i]);
printf("\n");
printf("*******end*******\n");
}

运行结果有错~算法上我自己找不出来~希望达人们能帮帮我~小弟万分感谢
关于那些链表来算这个问题小弟我还没学
所以只能用以前的办法


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
32.227ms