标题:关于循环单链表的
取消只看楼主
aing321
Rank: 2
等 级:论坛游民
帖 子:31
专家分:23
注 册:2013-1-30
结帖率:100%
已结贴  问题点数:20 回复次数:3 
关于循环单链表的
原题本来是猴子选大王  首先输入n和m   n为总数  从第一个考试 每m个就退出  然后重新计数  直到最后一个  然后输出这个数
程序代码:
#include<stdio.h>
#include<malloc.h>
typedef struct monkey{
    int ID;
    struct monkey* next;
} M;
int main(){
    int n,m,t,i;
    M *a,*b;
    while(scanf("%d%d",&n,&m)!=EOF){
        a=(M*)malloc(sizeof(M));
        b=a;
        for(i=0;i<n-1;i++){
            b->ID=i;
            b=(M*)malloc(sizeof(M));
            b->next=b;
        }
        b->ID=n-1;
        b->next=a;
        for(i=0;i<n;i++){
            t=0;
            while(t<m){
                a=a->next;
                t++;
            }
            b=a->next;
            a=a->next=a->next->next;
            free(b);
            if(i==n-1)    printf("%d\n",a->ID);
        }
    }
}
结果发现很多的错误   单又不会改   求解答
搜索更多相关主题的帖子: monkey 大王 next 
2013-03-11 22:46
aing321
Rank: 2
等 级:论坛游民
帖 子:31
专家分:23
注 册:2013-1-30
得分:0 
嗯  终于发现错在哪了。。。    b的地址没保存就直接分配新的了  
可是还是有些问题
这个是弄好后的代码
程序代码:
#include<stdio.h>
#include<malloc.h>
typedef struct monkey{
    int ID;
    struct monkey* next;
} M;
int main(){
    int n,m,t,i;
    M *a,*b,*c;
    while(scanf("%d%d",&n,&m)!=EOF){
        a=(M*)malloc(sizeof(M));
        b=a;
        for(i=1;i<=n;i++){
            b->ID=i;
            c=(M*)malloc(sizeof(M));
            b->next=c;
            c->next=a;
            b=(M*)malloc(sizeof(M));
            b=c;
        }
        for(i=0;i<n;i++){
            t=0;
            while(t<m){
                a=a->next;
                t++;
            }
            b=a->next;
            a=a->next=a->next->next;
            free(b);
            if(i==n-1)    printf("%d\n",a->ID);
        }
    }
}
求另外的错误

[ 本帖最后由 aing321 于 2013-3-11 23:32 编辑 ]

天行健君子以自强不息 地势坤君子以厚德载物
2013-03-11 23:23
aing321
Rank: 2
等 级:论坛游民
帖 子:31
专家分:23
注 册:2013-1-30
得分:0 
回复 6楼 azzbcc
//            a=a->next=a->next->next;这一行、、、你要表达什么?
这个就是删掉a->next的内容   将a->next指向原先a->next->next的地方   避免造成断链  
还有  你说的那些对我帮助很大   谢谢

天行健君子以自强不息 地势坤君子以厚德载物
2013-03-12 00:08
aing321
Rank: 2
等 级:论坛游民
帖 子:31
专家分:23
注 册:2013-1-30
得分:0 
回复 6楼 azzbcc
嗯  还有  关于我这个m=1时不成功该怎么破

天行健君子以自强不息 地势坤君子以厚德载物
2013-03-12 00:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-400467-1-1.html




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

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