fuyang 发表于 2009-6-17 08:29:24

约瑟夫环的代码求解

帮我看一下错在哪里?谢谢你们啦!实在不知道错在哪!应该是算法错误,可是我想不通错在哪?请帮帮我!
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{ int data;
struct node *next;
} Lnode;
Lnode *create(int n)
{ int i;
Lnode *h,*p,*r=(Lnode *)malloc(sizeof(Lnode));
r->data=n;
for(i=n-1;i>=0;i--)
{ p=(Lnode *)malloc(sizeof(Lnode));
    p->data=i;
    h=p;
}
   return h;
}
voidjeseph(Lnode *p,int m)
{ Lnode *q;
int j=0;
printf("outqueue order:");
while(p->next!=p)
{ j++;
    if(j==m-1)
{ q=p->next;
   p->next=q->next;
   printf("%d",q->data);
   j=0;
   free(q);
}
p=p->next;
}
printf("%d\n",p->data);
free (p);
}
void main()
{ Lnode *h;
int m,n;
printf("input :");
scanf("%d,%d",&n,&m);
h=create(n);
jeseph(h,m);
}
页: [1]
查看完整版本: 约瑟夫环的代码求解