pio312hund 2016-05-10 16:06 采纳率: 0%
浏览 1106

初学链表,解决约瑟夫环问题。

在codebolcks里面运行能够正常出结果,但是不是return 0,return的数字和输入的n有关请问我的代码有问题吗?

#include
#include
struct child
{
int num;
struct child *pre;
struct child *next;
};

int main()
{
int n,k;
scanf("%d %d",&n,&k);
struct child *current,*prev,*home;
current = (struct child *) malloc(sizeof(struct child));
current->num=1;
prev=current;
home=current;
int i,roll=1;
for (i=1; i current = (struct child *) malloc(sizeof(struct child));
if (current == NULL) {
printf("wrong!");
}
current->num=1+i;
current->pre=prev;
prev->next=current;
prev=current;
}
prev->next=home;
home->pre=prev;
int num,mod;
while (roll<=n)
{
if (roll>1) {
putchar(' ');
}
num=roll+k-1;
mod=num%(n-roll+1);
while (mod>0)
{
home=home->next;
//printf("%p",home);
mod--;
}
printf("%d",home->num);
prev=home->pre;
prev->next=(home->next);
prev=home;
home=home->next;
free(prev);
roll++;
}
}
运行结果如图:return 6的部分求解释
图片说明

  • 写回答

5条回答

  • Robot-S 2016-05-10 16:12
    关注

    现在用链表解决约瑟夫环问题,链表与数组的区别在于,链表的出列是删除结点,而数组并没有真正删除元素,只是标记为不存在。
    上代码:

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

    #define MAX 10
    typedef struct node V_NODE;
    struct node{
    int id;
    struct node *n......
    答案就在这里:链表解决约瑟夫环问题
    ----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?