| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 718 人关注过本帖
标题:编写了个小程序,最后结果不大对,是否float会四舍五入?
只看楼主 加入收藏
uswood
Rank: 2
等 级:论坛游民
帖 子:34
专家分:16
注 册:2014-3-29
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:11 
编写了个小程序,最后结果不大对,是否float会四舍五入?
   是一个例题,求一棵树的高度,通过一个高的人和一个矮的人与树站成一条直线,用相似三角形原理求出树的高度,2人的身高差/矮个子=(树高-矮个子)/树到高个子的距离。
   以下是程序代码。
   
程序代码:
#include<stdio.h>
int main(void)
{
  /*输入数据阶段*/
  float tree_height,tom_height,marry_height,gap;
  float distance_tm=0,distance_tt=0;
  float feet1,feet2;/*利用相似三角形原理计算对象高度,定义树、tom、marry两人身高,身高差,两人的距离,tom到树距离*/   

  printf("Please make a guy to stand between trees and another guy,"
         "they should have a different stature.\n\n");/*说明*/
  tom_height=1.0; /*防止scanf的bug*/

  printf("And then,please import a stature number of the height man: ");
    scanf("%f",&tom_height); /*得到tom的身高*/

  printf("\nThen,import a stature number of the short man:");
    scanf("%f",&marry_height);/*得到marry的身高*/

  printf("how many feets between tree and the hight man:");/*得到树到tom步数*/
    scanf("%f",&feet1);

  printf("how many feets between heightman and the shortman:");/*得到两人之间的步数*/
    scanf("%f",&feet2);


 

  /*化步数和身高为米*/
  feet1*=0.5;
  feet2*=0.5;
  tom_height/=60.0;
  marry_height/=60.0;
  /*开始计算*/
  gap=tom_height-marry_height;
  tree_height=gap/feet2*feet1+marry_height;

  printf("There is %f meter is it.\n",tree_height);

 

  return 0;
}

   编译并没有错误,但如果输入高个子170  矮个子160  树到高个子步数20  两人之间步数10,得到结果是3.0000,实际计算应该是3.2左右,
   如果把矮个子改158,就成了3.002这种,难道计算过程中进行了四舍五入吗?希望解惑

搜索更多相关主题的帖子: 矮个子 高个子 三角形 
2015-03-15 23:17
lxmaint
Rank: 2
等 级:论坛游民
威 望:1
帖 子:20
专家分:74
注 册:2015-3-15
收藏
得分:3 
你自己肯定没仔细调过吧,
算下程序中你给的计算方法:得到的结果就是(20+160)/60,结果还就是3,给你带几个0出来还是因为你定义的
是float型,够客气的了。
2015-03-16 00:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
回复 楼主 uswood
題目給的算法是錯的,少了條件,那公式怎麽可能對。你畫個圖就明白,結果跟兩人之間的距離有關,並非衹是身高差就可以的。

授人以渔,不授人以鱼。
2015-03-16 03:36
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
/=60是干嘛的

DO IT YOURSELF !
2015-03-16 08:26
lyd910915
Rank: 2
等 级:论坛游民
帖 子:7
专家分:18
注 册:2015-3-16
收藏
得分:3 
感觉好麻烦
2015-03-16 10:44
uswood
Rank: 2
等 级:论坛游民
帖 子:34
专家分:16
注 册:2014-3-29
收藏
得分:0 
回复 2楼 lxmaint
图片附件: 游客没有浏览图片的权限,请 登录注册


没听明白最后的那个计算式子是怎么出来的,这个是刚刚单步调试看的,粗略用计算机算了下确实是2。999之类的,可能昨天自己算错了。
然后那个/60写错了 ,应该是/100,把厘米化米的..
2015-03-16 12:07
uswood
Rank: 2
等 级:论坛游民
帖 子:34
专家分:16
注 册:2014-3-29
收藏
得分:0 
回复 3楼 TonyDeng
其实是有的,但我弄错了搞得大家都没看明白,应该是/100,写成了/60  把换算单位弄错了
2015-03-16 12:08
uswood
Rank: 2
等 级:论坛游民
帖 子:34
专家分:16
注 册:2014-3-29
收藏
得分:0 
回复 4楼 wp231957
谢谢提醒!  应该是/100的  把尺度弄成时间单位了
2015-03-16 12:09
uswood
Rank: 2
等 级:论坛游民
帖 子:34
专家分:16
注 册:2014-3-29
收藏
得分:0 
回复 5楼 lyd910915
头一次自己编,问题确实很多 还得约简约越好
2015-03-16 12:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
轉化單位幹嘛?不需要。公式錯了,跟轉化單位無關。用自己的幾何知識寫正確的公式,不要照抄,何況,編程也不需要硬套公式,它是可以分步求解的。

授人以渔,不授人以鱼。
2015-03-16 13:52
快速回复:编写了个小程序,最后结果不大对,是否float会四舍五入?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015573 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved