约瑟夫环 练习
#include <stdio.h>#include <malloc.h>
#include <stdlib.h>
typedef struct s
{
int data;
struct s *next;
}huan;
huan *chushihua(); //初始化约瑟夫环
void shuchu(huan *phode); //输出
void weizhi(huan *phode,int i); //递归输出自杀人的位置
void main()
{
huan *phode;
int i=1;
phode=chushihua();
shuchu(phode);
weizhi(phode,i);
}
huan *chushihua() //初始化约瑟夫环
{
huan *hode,*p,*p1;
int i;
hode=p=p1=NULL;
for(i=1; i<=41; i++)
{
p=(huan *)malloc(sizeof(huan));
if(i==1)
{
hode=p;
p->data =i;
}
else
{
p1->next =p;
p->data =i;
}
p1=p;
}
p->next =hode;
return hode;
}
void shuchu(huan *phode) //输出
{
huan *p=phode;
do
{
printf("%5d",p->data );
p=p->next ;
}
while(phode!=p );
printf("\n\n");
}
void weizhi(huan *phode,int i) //递归输出自杀人的位置
{
if(phode==phode->next)
{
return;
}
else
{
if(phode->data ==0)
{
i--;
}
if(i==3)
{
printf("%d号自杀去\n",phode->data);
phode->data=0;
i=0;
}
weizhi(phode->next,++i);
}
}
有木有想过用数组做,那样可不好做哦 接下来 看看 小甲鱼老湿是怎么讲的 初始化约瑟夫环
感恩无私的分享与奉献 :) 我只是路过打酱油的。:lol {:5_99:}malloc忘了一定记着free 淡定,淡定,淡定…… 谢谢lz 向你学习 这程序运行起来有问题吖,全部自杀子后还没结束,然后程序就挂了 一直在学习 从未被超越!
{:1_1:}厉害{:1_1:}厉害 {:7_148:} 顶你楼主 好文章转过来方便自己看 感谢楼主的分享啦~~~~~~~~哈哈哈~ 有木有想过用数组做,那样可不好做哦 学渣表示学不会啊 学习
页:
[1]