#include<stdio.h>
#include<math.h>
void insert(int *,int);
int main(int argc, char argv[])
{
int tree[1000];
memset(tree,'\0',1000);
int i=1;
while (!argv[i])
{
insert(tree,atoi(argv[i]));
}
int depth=0;
printf("Enter depth");
scanf("%d",&depth);
int x=pow(2,depth);
int y=2x-1;
int count=0;
for(;x<=y;x++)
{
if((tree[x]!=NULL) && (tree[2x+1]==NULL) && (tree[2x]==NULL))
{
count++;
}
}
printf("Number of leaf nodes is %d", count);
}
void insert(int *tree,int gmail)
{
int i=1;
if(tree[i]==NULL)
{
tree[i]=gmail;
}
else
{
if(gmail>tree[i])
{
insert(tree[2i+1],gmail);
}
else
insert(tree[2i],gmail);
}
}
Q
代码编译没有
2
A
回答
4
你不能只是写:
insert(tree[2i+1],gmail);
你需要明确提供的乘法运算,即:[2*i+1]
或[2*i]
。
此外,作为tree[2*i0]
是int
,而不是一个int*
,你需要它的地址:
insert(&(tree[2*i+1]),gmail);
和:
insert(&(tree[2*i]),gmail);
或者,你可以使用:
insert(tree + (2*i), gmail);
另一个错误是pow
cal湖pow返回一个double值,不是int,所以你需要转换回一个int:
int x = (int) pow(2.0, depth);
0
看起来你正在使用2i
和2x
作为标到一个数组。这不符合您的使用方式。尝试用2 * i
和2x
替换出现2i
与2 * x
。
0
2i+1
无效。请尝试(2*i) + 1
0
2i
和2x
是无效表达式,您应该将2*i
和!
下一次发布在它不编译和一些说明,会更易于阅读的行..
1
一旦你得到它来编译,你要解决这个问题:
while (!argv[i])
{
insert(tree,atoi(argv[i]));
}
这将1)根本不执行,或2)给一个无限循环。 if (!argv[1])
等效于if (argv[i] == NULL)
,所以如果只有在没有值存在的情况下才会读取值。
1
#include<stdio.h>
#include<math.h>
void insert(int *,int);
int main(int argc, char argv[])
{
int tree[1000];
memset(tree,'\0',1000);
int i=1;
while (!argv[i])
{
insert(tree,atoi(argv[i]));
}
int depth=0;
printf("Enter depth");
scanf("%d",&depth);
int x=pow(2.0,depth);
int y=2*x-1;
int count=0;
for(;x<=y;x++)
{
if((tree[x]!=NULL) && (tree[2*x+1]==NULL) && (tree[2*x]==NULL))
{
count++;
}
}
printf("Number of leaf nodes is %d", count);
}
void insert(int *tree,int gmail)
{
int i=1;
if(tree[i]==NULL)
{
tree[i]=gmail;
}
else
{
if(gmail>tree[i])
{
insert(tree,tree[2*i+1]);
}
else
insert(tree,tree[2*i]);
}
}
这段代码有工作,只是在我的编译器的memset的功能还没有认识 这是什么功能?
相关问题
- 1. 代码CGColorSpaceCreateDeviceRGB没有编译
- 2. gcc编译libavformat代码,但g ++没有
- 3. 代码没有在javascript编译
- 4. Bison示例代码没有编译
- 5. 编译没有Adobe Flash的flash代码
- 6. Maven的:没有源代码编译
- 7. 编译Qt3D没有Qt源代码
- 8. 代码没有运行但编译?
- 9. Java代码没有用'javac'编译,而是在Eclipse中编译
- 10. 分析没有源代码的编译代码?
- 11. Verilog代码编译没有错误,但没有输出
- 12. 我的代码没有编译错误,但没有输出
- 13. 脚本代码没有执行,但没有编译器错误
- 14. Libgdx HTML项目没有编译(没有源代码可用...)
- 15. NASM没有编译我的汇编代码
- 16. 反编译汇编代码有多难?
- 17. 在Windows上没有默认的字节码编译Python代码?
- 18. GMP-汇编代码?编译代码
- 19. Visual Studio代码没有编译所有* .ts文件
- 20. 有没有办法编译FF加载项代码
- 21. 有没有办法将Python代码“编译”到Arduino(Uno)?
- 22. Coffescript没有编译有效的源代码
- 23. 编译Yacc代码
- 24. C代码编译
- 25. 编译vhdl代码
- 26. 编译C代码
- 27. 代码不编译
- 28. 编译器可以在没有扩展的情况下编译代码吗?
- 29. 修复了编译后的MVC ASP.NET网站没有编译的原始代码
- 30. 反编译汇编代码
将代码格式化为至少可读! – ypnos 2011-02-14 17:19:58
请:有礼貌·告诉我们你需要什么。不要只发布代码。 – Benoit 2011-02-14 17:20:01