#include<stdio.h>
#include<malloc.h>
typedef struct Node
{
int data;
struct Node *next;
}Node,*LinkList;
int zhuti(Linklist A)
{
typedef struct Node *p,*q;
int i;
printf("输入报数上限\n");
scanf("%d",&m);
LinkList B;
*B=(typedef struct Node*)malloc(sizeof(Node));
B->next=NULL;
p=A;
q=B;
while(p!=p->next)
{
for(i=1;i!=m;i++)
p=p->next;
q->next=p;
q=q->next;
p->next=p->next->next;
}
q->next=p;
q=q->next;
q->next=NULL;
return (B);
}
LinkList shuchu(LinkList B)
{
while(B!=NULL)
{
printf("%d,",B->date);
B=B->next;
}
}
void jianli(LinkList A)
{
typedef struct Node *s;
int i,n;
printf("输入人数\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
s=(Node*)malloc(sizeof(Node));
s->date=i;
s->next=A->next;
A->next=s;
}
}
int main()
{
LinkList B;
LinkList A;
A=(LinkList)malloc(sizeof(Node));
A->next=NULL;
jianli(LinkList A);
B=zhuti(Linklist A);
shuchu(LinkList B);
return 0;
}
這程式碼問題好多,看得出來是初學者,結構體應用文法錯誤都好多,這裡貼一個用這份程式碼改出來的正確答案。