for(j=1;j<=MAXNUM;j++)
{printf("\n请输入第 %d 个结点的密码 = ",j);
scanf("%d",&c);
StList[j].Next=j+1; // 这里错了,越界了。看上面是 for(j=1;j<=MAXNUM;j++) StList[j].Number=j;
StList[j].Cipher=c;
}
{printf("\n请输入第 %d 个结点的密码 = ",j);
scanf("%d",&c);
StList[j].Next=j+1; // 这里错了,越界了。看上面是 for(j=1;j<=MAXNUM;j++) StList[j].Number=j;
StList[j].Cipher=c;
}
k=StList[k].Next;
是什么意思呀?k初值为0,StList[0].Next也为0,0 = 0,转了半天在干什么啊?
我改了3处:
1. /* 设置已用静态循环链表初值 */
StList[0].Next=1;2. while((n++)<MAXNUM);3. 删掉 printf("%d",StList[StList[j].Next].Number);还有,我前面提到的测试例子应为:当初始i=20时,7个人的密码依次为: 3,1,7,2,4,8,4 出列顺序为: 6,1,4,7,2,3,5
我希望和RedFire交朋友,盼来信。 [email protected] Oicq : 6550801