#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