我正在用 C 语言编写一个函数来打印出一棵三元树。当然,我的方法效率非常低,但这不是重点,我需要做的就是打印出树而不考虑空间或时间复杂性。
编译器 (gcc) 在 for 循环所在的行上给我一个错误。我不知道出了什么问题。我什至将 empty 设置为 double,并且包含了 math.h,所以我真的看不出问题是什么。请帮忙!
这是编译器的输出:
make traverse clean gcc -c -Wall traversals.c
traversals.c: In function ‘printTree’:
traversals.c:112: error: syntax error before ‘)’ token
traversals.c:112: error: syntax error before ‘)’ token
make: * [traversals.o] Error 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
}
}
最佳答案
你有一个额外的)
for(level = 2; empty != pow(3, level - 1)); level++)
^ here
关于for 循环中 pow() 的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7533726/