约瑟夫环程序有点小问题

CoKKKKde CoKKKKde 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
# include<stdio.h>
# include<malloc.h>
typedef struct Node
{
int id;
int mima;
struct Node *next;
}Node,*Linklist;
void Create(Linklist &L,int num) //创建
{
L=(Node*)malloc(sizeof(Linklist));
L->id=0;
L->mima=0;
L->next=L;
Node *r,*s;
r=L;
int j=1;
while(num--)
{
s=(Node*)malloc(sizeof(Linklist));
printf("\n请输入第%d结点的ID和密码:\t",j);
j++;
scanf("%d",&s->id);
scanf("%d",&s->mima);
r->next=s;
r=s;
}
r->next=L;
}
void Delete(Linklist &L,Linklist &P,Linklist T) //删除
{
P->next=T->next;
free(T);
}


Linklist loca(Linklist &L,int *n) //查找-
{
Node *s;
for(int i=1;i<*n;i++)
{
L=L->next;
}
s=L->next;
*n=s->mima;
return s;
}
int main()
{
Linklist L,P,T; //T是中间量 P是为了重新连接环的量 L是要改的量
int num,mima;
printf("人数 和 初始密码 为\t");
scanf("%d%d",&num,&mima);
Create(L,num);
P=L;
for(int i=1;i<=num;i++)
{
T=loca(P,&mima);

printf("%d\t ",T->id);

Delete(L,P,T);
}
return 0;
}

执行结果:
人数 和 初始密码 为 5
2

请输入第1结点的ID和密码: 1
2

请输入第2结点的ID和密码: 2
1

请输入第3结点的ID和密码: 3
3

请输入第4结点的ID和密码: 4
2

请输入第5结点的ID和密码: 5
2
2 3 0 1 5
--------------------------------
Process exited with return value 0
Press any key to continue . . .

结果里面有一个不知道问题 出现地址应该是有一个值没有被赋值上!不知道怎么办

...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
CoKKKKde
C语言 70,039 成员 243,237 内容