#include <stdio.h>
#include<stdlib.h>
typedef struct node
{ int cave; struct node * next;
}
node,*LinkList;
void main()
{ int i=0,j,count=1; // 初始值为1;
LinkList L,p,h;//也可node *L,*p,*h;
L=(node *)malloc(sizeof(node));
if(!L) { printf("error");exit(0); }
L->next=NULL;//L为1号洞
L->cave=1;//第一次
h=L;
for(i=0;i<9;i++)
{ p=(node *)malloc(sizeof(node));
if(!p) { printf("error");exit(0); }
h->next=p; h=p; p->cave=0; p->next=NULL; }
p->next=L;//循环链表
h=L; i=1;//先到1号洞,找初始值为0;
while(i<1000)//i表示钻过多少洞你可以改个小一点的值检查一下
{ count++;//隔n个洞找,下标加上(n+1)搜索所以初始值为1;
for(j=0;j<count;j++) h=h->next; h->cave++; i++; }
p=L; for(j=0;j<10;j++)
{ printf("[%2d]号洞=%d\n",j+1,p->cave);
p=p->next; }
}