C 程序不打印出值
C program doesn't print out the values
我有一个程序正在寻找总数以及链表中的中间数字是多少。我的问题是为什么它不打印出值?
代码如下:
int count(list values){
if(values == NULL)
return 0;
else
return 1 + count(values->next);
}
void middle(struct node *head){
int count = 0;
struct node *mid = head;
while (head != NULL){
if(count & 1)
mid = mid->next;
count++;
head = head->next;
}
}
void traverse(list values){
if(values->next)
printf("\n# of the values: %.1f% \nMiddle: %.1f%\n", count, middle);
}
int main(int argc, char *argv[]){
FILE *input = stdin;
list values = readNumbers(input);
traverse(values);
return 0;
}
printf("\n# of the values: %.1f% \nMiddle: %.1f%\n", count, middle);
count
应该接收一个参数 (list
)。编译器会将不带参数的 count
和 middle
视为函数指针。
另请注意,middle
是一个 void
函数,那么您究竟希望它打印什么?
很难知道从哪里开始。我真的不知道你想做什么。
但是让我们看看这一行:
printf("\n# of the values: %.1f% \nMiddle: %.1f%\n", count, middle);
count
和 middle
是函数,但您不会在此处调用这些函数。您只是将这些函数的地址传递给 printf()
,它不知道这些是函数。您需要在函数名称后加上括号(count(args)
和 middle(args)
才能调用这些函数。
我有一个程序正在寻找总数以及链表中的中间数字是多少。我的问题是为什么它不打印出值?
代码如下:
int count(list values){
if(values == NULL)
return 0;
else
return 1 + count(values->next);
}
void middle(struct node *head){
int count = 0;
struct node *mid = head;
while (head != NULL){
if(count & 1)
mid = mid->next;
count++;
head = head->next;
}
}
void traverse(list values){
if(values->next)
printf("\n# of the values: %.1f% \nMiddle: %.1f%\n", count, middle);
}
int main(int argc, char *argv[]){
FILE *input = stdin;
list values = readNumbers(input);
traverse(values);
return 0;
}
printf("\n# of the values: %.1f% \nMiddle: %.1f%\n", count, middle);
count
应该接收一个参数 (list
)。编译器会将不带参数的 count
和 middle
视为函数指针。
另请注意,middle
是一个 void
函数,那么您究竟希望它打印什么?
很难知道从哪里开始。我真的不知道你想做什么。
但是让我们看看这一行:
printf("\n# of the values: %.1f% \nMiddle: %.1f%\n", count, middle);
count
和 middle
是函数,但您不会在此处调用这些函数。您只是将这些函数的地址传递给 printf()
,它不知道这些是函数。您需要在函数名称后加上括号(count(args)
和 middle(args)
才能调用这些函数。