| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2534 人关注过本帖
标题:用单循环链表解决约瑟夫环问题,程序异常终止
只看楼主 加入收藏
EMMMM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-9-16
结帖率:75%
收藏
 问题点数:0 回复次数:7 
用单循环链表解决约瑟夫环问题,程序异常终止
如图,运行时程序会直接报错中止,我看了很久,一点问题没看出来。。。求各位指点一下
编译环境:VS2017
代码:
#include"stdio.h"
#include"stdlib.h"
typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode, *LinkList;
LinkList creat()
{
    LinkList rear, head, p;
    head = rear = (LinkList)malloc(sizeof(LNode));
    rear->next = head;
    printf("请输入所需长度n\n");
    int n;
    scanf("%d", &n);
    int i;
    for (i=1;i<n;i++);
    {
        p = (LinkList)malloc(sizeof(LinkList));
        p->data = i;
        p->next=rear->next;
        rear->next=p;
        rear=p;
    }
    rear->next->data=n;
    return head;
}

int Delete(LinkList head, int i)//本行i指报数的几
{
    LinkList p = head;
    LinkList q = head->next;
    int j = 1;
    while (p->next !=p)
    {
        if (j == i)
        {
            p->next = q->next;
            printf("%d\n",q->data);
            free(q);
            q=p->next;
            j=1;
        }
        p=q;
        q=q->next;
        j=j++;
    }
    return (p->data);
}
int main()
{
    LinkList L;
    L = creat();
    printf("%d",Delete(L,3));
    return 0;
}
搜索更多相关主题的帖子: 约瑟夫环 int data next head 
2017-09-21 13:06
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
        //p = (LinkList)malloc(sizeof(LinkList));
        p = (LinkList)malloc(sizeof(LNode));
2017-09-21 14:20
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
    //for (i=1;i<n;i++);
    for (i=1;i<n;i++)
2017-09-21 14:28
EMMMM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-9-16
收藏
得分:0 
回复 3楼 吹水佬
谢谢您,但是修改了这两处之后还是不成功,没法达到设计的效果,不管n值输入几,程序都会输出3,不知道为什么
2017-09-21 18:54
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用EMMMM在2017-9-21 18:54:28的发言:

谢谢您,但是修改了这两处之后还是不成功,没法达到设计的效果,不管n值输入几,程序都会输出3,不知道为什么

运行结果不正常,可能是算法不对。
搜索一下,相关内容和示例应该有不少,好象有个“猴子选大王”的问题也是这方面的应用。
2017-09-21 20:40
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
回复 4楼 EMMMM
不会啊,
图片附件: 游客没有浏览图片的权限,请 登录注册

早知做人那么辛苦!  当初不应该下凡
2017-09-21 21:18
EMMMM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-9-16
收藏
得分:0 
回复 6楼 炎天
您用的什么IDE?我用的vs2017和Dev都会异常。。。
2017-09-22 09:13
EMMMM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-9-16
收藏
得分:0 
我知道了,我的程序是j=j++这行有问题。。。改为j=j+1或j++就行。。。
2017-09-23 13:01
快速回复:用单循环链表解决约瑟夫环问题,程序异常终止
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025654 second(s), 12 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved