各位好心人帮帮忙帮我做个C语言课程设计

来源:百度知道 编辑:UC知道 时间:2024/06/21 04:40:42
题目:
设有N个人围坐一圈并按顺时针方向从1到N编号,从第S个人开始,进行从
1到M的报数,报数到第M个人,此人出圈,再从他的下一个人重新开始从1
到M的报数,如此进行下去直到所有的人都出圈为止。要求输出出圈的次序及最后一个出圈的人的编号。
感谢不尽!
祝:你们一切顺利!
快乐每一天!

#include"stdio.h"
#include"alloc.h"

typedef struct lnode /*定义结构体类型*/
{
int v;
struct lnode *next;
}lnode,*linklist;

linklist creatlist_l(int n) /*建立一个单循环链表*/
{
linklist p,head;int i;
head=(lnode * )malloc(sizeof(lnode));
p=head;
for(i=1;i<=n;i++)
{
p->next=(lnode * )malloc(sizeof(lnode));
p=p->next;
p->v=i;
if(i!=n)
p->next=NULL ;
else
p->next=head->next;
}p=head->next;
free(head);return(p);
}

void baoshu( int k,int n ,int m,linklist p)
{ int i;
for(i=1;i<k;i++)
p=p->next;
{if (n==1)
printf("1");
else
while(p!=p->next)
{
if(m==1)
for(i=0;i<=n-1;i++)
{ printf("%3d",p->v);
p->v=p->next->v;
p->next=p->n