主题:[原创]数据结构
猴子选大王算法
任务:一堆猴子的编号为1-m,按此顺序围坐,从第1个开始数,要数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,该猴子就为大王.
要求:输入m,n,其中m,n为整数, n<m
输出形式:中文提示按m个猴子,数n个数的方法,输出为大王的猴子是几号
注:用数据结构实现,下面有提示!
请各位高手帮帮忙啊,十万火急
#include<stdio.h>
#include<stdio.h>
typedef struct node /*建立结构体*/
{ int num;
struct node *next;
}link;
int *create(int m)
{int i;
link *head,*s,*r;
head=NULL,r=NULL;
for(i=0;i<m;i++)
{ s=(link *)malloc(sizeof(link));
s->num=i+1;
if(head==NULL) head=s;/*结点的数据域为猴子的序号*/
else r->next=s;
r=s;
}
r->next=head;
return head;
}
delete()
{link *head,*p,*s;
int i,j,m,n;
char ch;
printf("请输入猴子的个数'm':");/*提示输入m n,并注意到m>n>0的容错性*/
scanf("%d",&m);/**/
?????????这里就是欠缺的语句???????
printf("\n猴子大王的序号是:\t%d\n",p->num);/*输入猴子的个数m*/
printf("继续,输入'y',或按任意键退出:");
getchar();
ch=getchar();
if((ch=='y')||(ch=='y')) delete();
}
main()
{delete();}[color=FF0000]这里就是欠缺的语句[/color]
任务:一堆猴子的编号为1-m,按此顺序围坐,从第1个开始数,要数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,该猴子就为大王.
要求:输入m,n,其中m,n为整数, n<m
输出形式:中文提示按m个猴子,数n个数的方法,输出为大王的猴子是几号
注:用数据结构实现,下面有提示!
请各位高手帮帮忙啊,十万火急
#include<stdio.h>
#include<stdio.h>
typedef struct node /*建立结构体*/
{ int num;
struct node *next;
}link;
int *create(int m)
{int i;
link *head,*s,*r;
head=NULL,r=NULL;
for(i=0;i<m;i++)
{ s=(link *)malloc(sizeof(link));
s->num=i+1;
if(head==NULL) head=s;/*结点的数据域为猴子的序号*/
else r->next=s;
r=s;
}
r->next=head;
return head;
}
delete()
{link *head,*p,*s;
int i,j,m,n;
char ch;
printf("请输入猴子的个数'm':");/*提示输入m n,并注意到m>n>0的容错性*/
scanf("%d",&m);/**/
?????????这里就是欠缺的语句???????
printf("\n猴子大王的序号是:\t%d\n",p->num);/*输入猴子的个数m*/
printf("继续,输入'y',或按任意键退出:");
getchar();
ch=getchar();
if((ch=='y')||(ch=='y')) delete();
}
main()
{delete();}[color=FF0000]这里就是欠缺的语句[/color]