theonethatgot 发表于 2014-5-3 21:26:02

约瑟夫问题??

//n个人围圈报数,报m出列,最后剩下的是几号?

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

typedef struct node
{
    int data;
    struct node *next;
}node;

node *create(int n)
{
    node *p = NULL, *head;
    head = (node *)malloc(sizeof(struct node));
    p = head;
    node *s;
    int i = 1;
   
    if( 0 != n)
    {
        while(i <= n)
        {
          s =(node *)malloc(sizeof(struct node));
          s->data = i++;//为循环链表初始化,第一个结点为1,第二个结点为2.
          p->next = s;
          p = s;
        }
        s->next = head->next;
    }
    free(head);
   
    return s->next;
}


int main()
{
    int n = 41;
    int m = 3;
    int i;
    node *p = create(n);
    node *temp;
   
    m %= n;
   
    while(p != p->next)
    {
        for(i = 1;i < m - 1;i++)
        {
          p = p->next;
        }
       
       
        printf("%d->",p->next->data);
       
        temp = p->next;
        p->next = temp->next;
        free(temp);
       
        p = p->next;
    }
    printf("%d\n",p->data);
   
    return 0;
}


为什么在codeblocks中编译就没有错误,在c++6.0中就报错???

秦晓彬 发表于 2014-5-4 22:00:03

问一下,约瑟夫问题,是什么,求解释一下,表示,小白,路过

ghvn7777 发表于 2014-5-6 21:58:27

vc++中建个空工程,添加c++文件,就好了

~风介~ 发表于 2014-5-6 23:45:05

秦晓彬 发表于 2014-5-4 22:00 static/image/common/back.gif
问一下,约瑟夫问题,是什么,求解释一下,表示,小白,路过

百度一下,你就知道~{:5_109:}

秦晓彬 发表于 2014-5-6 23:50:16

~风介~ 发表于 2014-5-6 23:45 static/image/common/back.gif
百度一下,你就知道~

既然版主都说了,我就百度一下吧,

~风介~ 发表于 2014-5-6 23:59:01

秦晓彬 发表于 2014-5-6 23:50 static/image/common/back.gif
既然版主都说了,我就百度一下吧,

加油哦!我们一起努力~{:5_95:}

秦晓彬 发表于 2014-5-7 00:01:10

~风介~ 发表于 2014-5-6 23:59 static/image/common/back.gif
加油哦!我们一起努力~

恩,一起努力,我在学习数据结构中,请多多指教{:5_101:}
页: [1]
查看完整版本: 约瑟夫问题??