#include<stdio.h>
#include<stdlib.h>
typedef int Elemtype;
typedef struct LNode
{
Elemtype data;
struct LNode *next;
}LNode,*LinkList;
void createlist(LinkList *head)
{
int i;
*head=(LinkList)malloc(sizeof(LNode));
LinkList p,q;
p=(*head)->next;
for(i=0;i<10;i++)
{
q=(LinkList)malloc(sizeof(LNode));
p->next=q;
q->next=(*head);
}
q->next=(*head);
}
void initlist(LinkList head)
{
LinkList p;
p=head->next;
do{
p->data=1;
p=p->next;
}while(p->next!=head);
}
void overthroughlist(LinkList head)
{
LinkList p;
int i,j=1,q,n,u;
p=head->next;
//狐狸来了
scanf("%d",&n);//进洞次数
for(i=0;i<n;i++)
{
u=((1.0/2)*j*(j+1));
u=u%10;
for(q=1;q<u;q++)//确保十个洞循环进,j是相隔的山洞数
{
p=p->next;
}
p->data=0;
j++;
if(p->next==head)
{
p=p->next;
}
}
}
void outputlist(LinkList head)
{
LinkList p;
p=head->next;
do{
printf("%d",p->data);
}while(p->next!=head);
}
int main()
{
LinkList head;
createlist(&head);
initlist(head);
overthroughlist(head);
outputlist(head);
return 0;
}
通过了编译但是没有输出,不清楚错哪了,求大神指教orz
循环链表的创建是参考的这位大神的代码
https://blog.csdn.net/you__know/article/details/8177628