1
我正在學習C中的鏈接列表。我是使用傳遞引用來處理鏈接列表的新手。現在我知道我在這個程序中做了一些非常愚蠢的事情。這個程序創建一個列表,然後基本上返回一個特定值的實例數(節點的數據)。在每次main!語句之前,我會收到一個像這樣的錯誤,「Expected declaration specifier」。預期聲明說明符
這是怎麼回事?
#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 times\n",this_many);
return 0;
}
void create(node *list) {
printf("Enter a number -999 to stop\n");
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);
}
我覺得你的括號不均衡?你能否將代碼格式化得更好一些? – demongolem
我沒有看到'main()'的開始括號'{' – brokenfoot
omg ..感謝一個非常愚蠢的錯誤,它確實現在完美運行。 – tofu