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

  • 主题发起人 主题发起人 小唐
  • 开始时间 开始时间

小唐

Unregistered / Unconfirmed
GUEST, unregistred user!
下面是书上的例子程序,将它输入到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",&amp;data);
while (data!=0)
{
nodelist[index]=data;
index=index+1;
scanf("%d",&amp;data);
}
for (i=1;i<16;i++)
b_tree=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);
//显示的结果不符合要求
}
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 < b_tree[level])
level=level*2;
else
level=level*2+1;
}
b_tree[level]=nodelist;
}
}
 
for (i=1;i<16;i++)
b_tree=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);
//显示的结果不符合要求
 
哦,是这样啊。唉,以后再不敢说大话了。要细心、细心再细心!
谢谢!
 
忘了加分了。抱歉。
 
后退
顶部