约瑟夫环程序有点小问题
# 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 . . .
结果里面有一个不知道问题 出现地址应该是有一个值没有被赋值上!不知道怎么办
# 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 . . .
结果里面有一个不知道问题 出现地址应该是有一个值没有被赋值上!不知道怎么办
...全文
相关推荐
C语言编写的关于约瑟夫环问题的程序
问题描述:编号为1,2···n的人安顺时针围坐一周,每人持有一个密码,给一个整数m自第一个人开始报数m的人出列,再以他的密码位数继续报数,直到n-1个人出列。
设计一个程序求出约瑟夫环问题的出列顺
设计一个程序求出约瑟夫环问题的出列顺序,掌握线性表的基本操作在两种存储结构上的实现。
约瑟夫环问题解题报告及源代码与可执行程序
约瑟夫环问题解题报告及源代码与可执行程序 最多支持2000人的环问题,可以从任意人开始, 以任意数循环淘汰,并支持输出DAT文件
c++程序,解决约瑟夫环问题
用最简洁的程序,解决约瑟夫环问题,适合数据结构初学者
约瑟夫环问题算法描述和程序实现(C#)
数据结构(C#)约瑟夫算法描述和程序实现


