c-需要声明说明符



我正在学习C中的链表。我不熟悉使用传递引用来操作链表。现在我知道我在这个节目中做了一些非常愚蠢的事情。这个程序创建一个列表,然后基本上返回特定值(节点的数据)的实例数。我在main!的每个语句之前都会出现这样的错误:"预期声明说明符"!。

怎么了?

#include<stdio.h>
    #include<malloc.h>
    struct list {
            int number;
            struct list *next;
            };
    typedef struct list node;
    void create(node *);
    int count(node **,int);
    main()
    int key,this_many;
    node *head;
    head = (node *)malloc(sizeof(node));
    create(head);
    printf("Which number?n");
    scanf("%d",&key);
    this_many = count(&head,key);
    printf("%d timesn",this_many);
    return 0;
    }
    void create(node *list) {
            printf("Enter a number -999 to stopn");
            scanf("%d",&list->number);
            if(list->number == -999) {
                    list->next = NULL;
            }
            else {
                    list->next = (node *)malloc(sizeof(node));
                    create(list->next);
            }
    }
    int count(node **addr_list,int key) {
            int count = 0;
            while(*addr_list != NULL) {
                    if((*addr_list)->number == key) {
                            count++;
                    }
                    *addr_list = (*addr_list)->next;
            }
            return(count);
    }

问题:

  1. 您没有指定返回类型main
  2. 您没有{来启动main的作用域

将以main开头的行更改为:

int main()
{
  int key,this_many;
  node *head;
  head = (node *)malloc(sizeof(node));
  create(head);
  printf("Which number?n");
  scanf("%d",&key);
  this_many = count(&head,key);
  printf("%d timesn",this_many);
  return 0;
}

相关内容

  • 没有找到相关文章

最新更新