请大家帮我看看这个程序错在什么地方了?
以下的程序是我照着书中的例子,自己编写的,可是运行的时候,最后的结果明显不对。可是我又查不出来到底是哪里出问题了。大家帮我看看。/* 计算树的高度 */#include <stdio.h>
int main(void)
{
long A=0L; /* A的高度(厘米) */
long B=0L; /* B的高度(厘米) */
long cm=0L; /* 厘米 */
float m=0.00f; /* 米 */
long A_to_B=0; /* AB间的距离(厘米)*/
long B_to_tree=0; /* B到树间的距离(厘米)*/
long tree_height=0; /* 树的高度 */
const long cm_per_m=100L; /* 换算 */
/* 输入B的高度 */
printf("输入B的身高(厘米):");
scanf("%ld",&cm);
printf("输入B的身高(米):");
scanf("%.2f",&m);
B=m*cm_per_m;
/* 输入A的高度(至眼睛)*/
printf("输入A的身高(厘米):");
scanf("%ld",&cm);
printf("输入A的身高(米):");
scanf("%.2f",&m);
A=m*cm_per_m;
/* 输入AB的距离 */
printf("输入AB的距离(厘米):");
scanf("%ld",&cm);
printf("输入AB的距离(米):");
scanf("%.2f",&m);
A_to_B=m*cm_per_m;
/* B到树间的距离 */
printf("输入B到树的距离(米):");
scanf("%f",&m);
B_to_tree=m*cm_per_m;
/* 计算树的高度 */
tree_height=A+(A_to_B+B_to_tree)*(B-A)/A_to_B;
/* 显示结果 */
printf("树的高度为 %ld 厘米,%.2f 米。\n",
tree_height/cm_per_m,tree_height% cm_per_m);
return 0;
}