C程序不会打印出这些值



我有一个程序,正在寻找一个总数和什么是中间的数字在一个链表。我的问题是为什么它不打印出这些值?

代码如下:

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);

countmiddle是函数,但这里没有调用这些函数。你只是把这些函数的地址传递给printf(),它不知道这些是函数。您需要在函数名称(count(args)middle(args))之后包含圆括号,以便调用这些函数。

printf("n# of the values: %.1f% nMiddle: %.1f%n", count, middle);

count应该接收一个参数(list)。编译器将不带形参的countmiddle视为函数指针。

还要注意middlevoid函数,所以你到底想要它打印什么?

相关内容

  • 没有找到相关文章

最新更新