Xh1Xxhg 2022-11-20 21:07 采纳率: 100%
浏览 12
已结题

关于约瑟夫环循环单链表的问题,如何解决?(语言-c语言)

有没有人知道这个咋搞吗,脑袋快爆炸了
题目是这个:
有n个人按顺序顺时针围成一圈,每人持有一个密码(正整数),每个人密码不同。开始时任选一个整数作为报数上线值m,从第1个人开始顺时针自1开始顺序报数,报道m时停止报数。报m的人出圈,将他的密码作为新的m值,接着从出圈的下一个人开始重复此过程,直到所有人出圈为止。要求设计一个程序,利用单循环链表模拟此过程,按照出圈顺序输出各人的编号。

我看网上好多程序都是以一个固定的密码值来循环不符合题意,就想着自己来编写,结果下面的代码debug完,成空白了,就显示请按任意键继续

#include<stdio.h>
#include<stdlib.h>
typedef struct node/*定义结点类型*/
{
    int num;
    int pwd;
    struct person*next;
}person;
void InitCL(person *CL)/*链表初始化*/
{
    CL=(person*)malloc(sizeof(person));/*为头结点分配空间*/
    CL->next=CL;/*建立头结点*/ 
} 
void creatCL(person *CL)
{
    int m,n;
    printf("请输入总人数和初始密码值"); 
    scanf("%d %d\n",&m,&n);//m:总人数,n:初始密码值,rear:尾指针 
    person *rear,*p;
    rear=CL;/*rear指针动态指向表尾,初值指向头结点*/
    int i=0;/*i为计数器*/
    for(i=0;i<m;i++)
    {
        p=(person*)malloc(sizeof(person));//分配新结点空间 
        p->num=i+1;//设置结点编号 
        scanf("%d",&p->pwd);
        rear->next=p;
        rear=p;
        rear->next=CL;/*让最后一个结点的指针域指向头结点*/ 
    }      
}
void Josephus(person *CL)
{
    int m,n;
    person *rear;
    rear=CL;/*rear指针动态指向表尾,初值指向头结点*/
    int i=0,count=0,mod;
    person *p,*q;
    q=rear->next;
    p=q->next;
    mod=n%m;
    printf("密码  出列顺序"); 
    for(count=0;count<m;count++)
    {
    if(i=m) 
    {
        i=0;
    }
    while(i!=m)
    {
        i++;
        if(mod=p->num)
        {
            printf("%d  %d",p->pwd,p->num);
            n=p->pwd;
            mod=n%m;
            q->next=p->next;
            free(p);
        }
        q=q->next;
        p=p->next;
    }
    }
}
int main(void)
{
    void InitCL(person *CL);
    void creatCL(person *CL);
    void Josephus();
    system("pause");
}


  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月28日
    • 创建了问题 11月20日

    悬赏问题

    • ¥20 ARKts悬浮窗和快捷方式问题
    • ¥15 comparecluster没有办法kegg
    • ¥15 远程访问linux主机超时
    • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
    • ¥15 CPU卡指令整合指令数据都在图片上
    • ¥15 odoo17处理受托加工产品
    • ¥15 如何用MATLAB编码图三的积分
    • ¥15 圆孔衍射光强随孔径变化
    • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
    • ¥15 ESP-PROG配置错误,ALL ONES