请帮我看看如何把这个C程序调试得到正确的结果

Description of your first forum.

请帮我看看如何把这个C程序调试得到正确的结果

帖子小唐 » 星期六, 2003年6月14日 21:08


下面是书上的例子程序,将它输入到Turbo C++ 3.0中运行, 输入和书上一样的数据:
6  3  8  5  2  9  4  7  10  0
书上列出来的显示的结果是:
The binary tree is:
1: [6]
2: [3]
3: [8]
4: [2]
5: [5]
6: [7]
8: [9]
9: [0]
10: [4]
11: [0]
12: [0]
13: [0]
14: [0]
15: [10]
但是我运行得到的结果却是:
16: [0]

我核对了几遍,确信录入到电脑的程序和书上的是一致的。
不知应该如何修改,才能得到正确的结果。

#include <stdio.h>
void create_btree(int *b_tree, int *nodelist, int len);
void main()
{
int i,index;
int data;
int b_tree[16];
int nodelist[16];
printf("\n Please input the elements of binary tree (Exit for 0):\n");
index=1;
scanf("%d",&data);
while (data!=0)
{
nodelist[index]=data;
index=index+1;
scanf("%d",&data);
}
for (i=1;i<16;i++)
b_tree[i]=0;
create_btree(b_tree,nodelist,index);
printf("\n The binary tree is: \n");
for (i=1;i<16;i++);
printf("%2d: [%d] \n",i,b_tree[i]);  //显示的结果不符合要求
}

void create_btree(int *b_tree, int *nodelist, int len)
{
int i;
int level;
b_tree[1]=nodelist[1];
for (i=2;i<=len;i++)
{
level=1;
while (b_tree[level] !=0)
{
if (nodelist[i] < b_tree[level])
level=level*2;
else
level=level*2+1;
}
b_tree[level]=nodelist[i];
}
}
 
 
 

请帮我看看如何把这个C程序调试得到正确的结果

帖子tseug » 星期六, 2003年6月14日 21:37


for (i=1;i<16;i++)
b_tree[i]=0;
create_btree(b_tree,nodelist,index);
printf("\n The binary tree is: \n");
for (i=1;i<16;i++)[red];  [/red]//这里多了个分号....
printf("%2d: [%d] \n",i,b_tree[i]);  //显示的结果不符合要求
 
 
 

请帮我看看如何把这个C程序调试得到正确的结果

帖子小唐 » 星期六, 2003年6月14日 22:53


哦,是这样啊。唉,以后再不敢说大话了。要细心、细心再细心!
谢谢!
 
 
 

请帮我看看如何把这个C程序调试得到正确的结果

帖子小唐 » 星期六, 2003年6月14日 22:54


忘了加分了。抱歉。