Ошибка компилятора с pow () в цикле for - PullRequest
0 голосов
/ 23 сентября 2011

Я пишу функцию для распечатки троичного дерева на C. Конечно, мой метод ужасно неэффективен, но это не относится к делу, все, что мне нужно сделать, это распечатать дерево без учета пространства или времени.сложность.Компилятор (gcc) выдает мне ошибку в строке, где находится цикл for.Я не могу понять, что не так.Я даже установил пустой как двойной, и я включил math.h, так что я действительно не вижу, в чем проблема.Пожалуйста помоги!Это вывод компилятора:

make travers clean gcc -c -Wall traversals.ctraversals.c: в функции 'printTree':traversals.c: 112: ошибка: синтаксическая ошибка перед символом ')'traversals.c: 112: ошибка: синтаксическая ошибка перед символом ')'make: * [traversals.o] Ошибка 1

К сожалению, не совсем ясно, в чем именно заключается ошибка.Я думаю, что на самом деле есть 2 ошибки.

void printTree(node_t* node)
{
    printf("%d %s %d\n", node->depth, node->string, node->counter); // Print the root node
    int level;
    double empty = 0;
    // Starting from the second level and ending when all the children of a particular level are null
    for(level = 2; empty != pow(3, level - 1)); level++)
    {
        empty = checkLevel(node, level); // Print out any children that match the requested depth level and return the number of empty children
    }
}

1 Ответ

8 голосов
/ 23 сентября 2011

У вас есть дополнительные )

for(level = 2; empty != pow(3, level - 1)); level++)
                                         ^ here
...