NILL_X 发表于 2018-4-22 22:13:03

这个问题还是不行,求各位大神帮忙指点一下,万分感谢

这是小甲鱼老师布置的那个关于约瑟夫问题的作业,一直找不出报错的在哪 ,在这里求各位路过的大神指点迷津,万分感谢,万分感谢!!!

#include<stdio.h>
#include<stdlib.h>
#define N 41
typedef struct LNode
{
      int data;
      int num;
      struct LNode * next;
}LNode, * Node;

Nodecreate(int n)
{
      Node p = NULL, head;
      head = (Node)malloc(sizeof(LNode));
      p = head;
      Nodek;
      int i=1;
      if( n != 0 )
      {
            while(i <= n)
            {
                  k = (Node)malloc(sizeof(LNode));
                  k->data = i++;
                  k->num = rand()%100;
                  p->next = k;
                  p = k;
            }
            k->next = head->next;
            free(head);
      }
            return (k->next);
}
      
      int main()
      {
            int n = N, m, i;
            Node p = create(n), temp;
            m = p->num;
            while( p != p->next)
            {
                  for(i=1; i<m; i++)
                      p = p->next;
                  printf("%d-->",p->next->data);
                  m = p->next->num;
                  temp = p->next;
                  p->next = temp->next;
                  free(temp);
                  p = p->next;
            }
            printf("%d",p->data);
            return 0;
      }


//下面是编译时的报错
Compiling...
约瑟夫.c
E:\VC程序\约瑟夫问题\约瑟夫.c(16) : error C2275: 'Node' : illegal use of this type as an expression
      E:\VC程序\约瑟夫问题\约瑟夫.c(9) : see declaration of 'Node'
E:\VC程序\约瑟夫问题\约瑟夫.c(16) : error C2146: syntax error : missing ';' before identifier 'k'
E:\VC程序\约瑟夫问题\约瑟夫.c(16) : error C2065: 'k' : undeclared identifier
E:\VC程序\约瑟夫问题\约瑟夫.c(17) : error C2143: syntax error : missing ';' before 'type'
E:\VC程序\约瑟夫问题\约瑟夫.c(20) : error C2065: 'i' : undeclared identifier
E:\VC程序\约瑟夫问题\约瑟夫.c(22) : warning C4047: '=' : 'int ' differs in levels of indirection from 'struct LNode *'
E:\VC程序\约瑟夫问题\约瑟夫.c(23) : error C2223: left of '->data' must point to struct/union
E:\VC程序\约瑟夫问题\约瑟夫.c(24) : error C2223: left of '->num' must point to struct/union
E:\VC程序\约瑟夫问题\约瑟夫.c(25) : warning C4047: '=' : 'struct LNode *' differs in levels of indirection from 'int '
E:\VC程序\约瑟夫问题\约瑟夫.c(26) : warning C4047: '=' : 'struct LNode *' differs in levels of indirection from 'int '
E:\VC程序\约瑟夫问题\约瑟夫.c(28) : error C2223: left of '->next' must point to struct/union
E:\VC程序\约瑟夫问题\约瑟夫.c(31) : error C2223: left of '->next' must point to struct/union
E:\VC程序\约瑟夫问题\约瑟夫.c(31) : warning C4033: 'create' must return a value
执行 cl.exe 时出错.

约瑟夫.obj - 1 error(s), 0 warning(s)

人造人 发表于 2018-4-22 23:13:00

你用vc6 ?

人造人 发表于 2018-4-22 23:14:19

试试这个
#include<stdio.h>
#include<stdlib.h>
#define N 41
typedef struct LNode
{
        int data;
        int num;
        struct LNode * next;
}LNode, *Node;

Nodecreate(int n)
{
        Node p = NULL, head;
        Nodek;
        int i = 1;

        head = (Node)malloc(sizeof(LNode));
        p = head;
       
        if(n != 0)
        {
                while(i <= n)
                {
                        k = (Node)malloc(sizeof(LNode));
                        k->data = i++;
                        k->num = rand() % 100;
                        p->next = k;
                        p = k;
                }
                k->next = head->next;
                free(head);
        }
        return (k->next);
}

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

NILL_X 发表于 2018-4-23 10:49:47

人造人 发表于 2018-4-22 23:13
你用vc6 ?

是啊现在都用哪个版本了?

NILL_X 发表于 2018-4-23 10:55:22

人造人 发表于 2018-4-22 23:14
试试这个

这个可以,我在对比一下看看问题出在哪,谢谢大神的指点,感谢感谢,顺便问一下,老大你用的是哪个软件呀?

人造人 发表于 2018-4-23 16:12:47

NILL_X 发表于 2018-4-23 10:55
这个可以,我在对比一下看看问题出在哪,谢谢大神的指点,感谢感谢,顺便问一下,老大你用的是哪个软件呀 ...

vs2017

人造人 发表于 2018-4-23 16:13:19

NILL_X 发表于 2018-4-23 10:55
这个可以,我在对比一下看看问题出在哪,谢谢大神的指点,感谢感谢,顺便问一下,老大你用的是哪个软件呀 ...

visual studio2017

NILL_X 发表于 2018-4-23 16:34:39

人造人 发表于 2018-4-23 16:13
visual studio2017

你那安装软件能发一个给我吗

人造人 发表于 2018-4-23 19:43:11

NILL_X 发表于 2018-4-23 16:34
你那安装软件能发一个给我吗

https://msdn.itellyou.cn/

页: [1]
查看完整版本: 这个问题还是不行,求各位大神帮忙指点一下,万分感谢