那边的薯片半价阿 2018-10-07 13:04 采纳率: 83.3%
浏览 1128

以循环链表解决狐狸逮兔子问题

#include<stdio.h>
#include<stdlib.h>

typedef int Elemtype;
typedef struct LNode
{
    Elemtype data;
    struct LNode *next;
}LNode,*LinkList;

void createlist(LinkList *head)
{
    int i;
    *head=(LinkList)malloc(sizeof(LNode));
    LinkList p,q;
    p=(*head)->next;
    for(i=0;i<10;i++)
    {
        q=(LinkList)malloc(sizeof(LNode));
        p->next=q;
        q->next=(*head);
    }
    q->next=(*head);

}
void initlist(LinkList head)
{
    LinkList p;
    p=head->next;
    do{
        p->data=1;
        p=p->next;
    }while(p->next!=head);
}
void overthroughlist(LinkList head)
{
    LinkList p;
    int i,j=1,q,n,u;
    p=head->next;
    //狐狸来了
    scanf("%d",&n);//进洞次数
    for(i=0;i<n;i++)
    {
            u=((1.0/2)*j*(j+1));
            u=u%10;
            for(q=1;q<u;q++)//确保十个洞循环进,j是相隔的山洞数
            {
                p=p->next;
            }
            p->data=0;
            j++;
            if(p->next==head)
            {
                p=p->next;
            }
    }
}
void outputlist(LinkList head)
{
    LinkList p;
    p=head->next;
   do{
    printf("%d",p->data);
   }while(p->next!=head);
}
int main()
{
    LinkList head;
    createlist(&head);
    initlist(head);
    overthroughlist(head);
    outputlist(head);
    return 0;
}

通过了编译但是没有输出,不清楚错哪了,求大神指教orz

循环链表的创建是参考的这位大神的代码
https://blog.csdn.net/you__know/article/details/8177628

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器