【问题标题】:C program doesn't print out the values [closed]C程序不打印出值[关闭]
【发布时间】:2015-12-02 07:53:47
【问题描述】:

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

代码如下:

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

【问题讨论】:

  • 请给我们完整的代码。
  • 预期和实际输出是多少?
  • list readNumbers (FILE *file){ list values = NULL, first = NULL;诠释 c; while ((c = getc(file)) != EOF) { int i = 0; list new = (list) malloc(sizeof(struct node));如果(值 == NULL)值 = 新;其他{值->下一个=新;价值观=新的; } 值 = 新的; if (first == NULL) first = values;做{值->值[i++] = c; } while ((c = getc(file)) != '\n' && c != EOF);值->值[i] = '\0'; } 先返回; }
  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建 minimal reproducible example

标签: c count linked-list median


【解决方案1】:
printf("\n# of the values: %.1f% \nMiddle: %.1f%\n", count, middle);

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

还要注意middle 是一个void 函数,那么您究竟希望它打印什么?

【讨论】:

    【解决方案2】:

    很难知道从哪里开始。我真的不知道你想做什么。

    但是让我们看看这一行:

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

    countmiddle 是函数,但您没有在这里调用这些函数。您只是将这些函数的地址传递给printf(),它不知道这些是函数。您需要在函数名称后加上括号(count(args)middle(args) 才能调用这些函数。

    【讨论】:

    • 如果我通过 count(values) 或 middle(values) 是否有效
    • 您没有显示足够的代码来回答这个问题。但这是你的代码。你是应该测试它的人。你试过了吗?你有没有编译错误?错误是什么?
    • 我得到了它的计数..我现在正在处理中间..我想我现在遇到的问题是中间是空的..如果我会回来我需要更多帮助.. 谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2012-11-04
    相关资源
    最近更新 更多