| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 416 人关注过本帖
标题:关于圆的面积求算问题,找了以前的贴,但得不到很好帮助。
只看楼主 加入收藏
qiqid
Rank: 2
等 级:论坛游民
帖 子:36
专家分:12
注 册:2013-3-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
关于圆的面积求算问题,找了以前的贴,但得不到很好帮助。
我的代码是:
#include <stdio.h>

#define PI 3.1415927

int main()
{
    float r;
    long double area;

    while( scanf("%f",&r)!=EOF )
    {
        area=PI*r*r;

        printf("%3.2lf\n",area);
    }

    return 0;
}
用普通的方法行不通,当半径很大很大时,计算后的结果肯定会造成溢出,我该怎样解决这个问题呢?
搜索更多相关主题的帖子: double include return 
2014-03-23 19:54
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:5 
float 改成 double,有效数位16-17位。如果还不行,就需要大数乘法了,你可以查一下大数乘法的算法。
2014-03-23 20:26
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
半径很大是多大?

DO IT YOURSELF !
2014-03-23 20:36
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:5 
3楼所言极是,这应当算是生活常识了吧

另外,printf中 long double 按标准(标准就这么规定的,我不管某某编译器如何如何)格式符应当是 %Lf,不是%lf
2014-03-24 09:53
zhuerlei
Rank: 2
等 级:论坛游民
威 望:1
帖 子:28
专家分:29
注 册:2014-3-14
收藏
得分:5 
回复 2楼 ying8501
#include "stdio.h"
int main()
{
    double r;
    double pi=3.141;
    printf("请输入圆的半径:");
    scanf("%lf",&r);
    printf("圆的周长为:%.8lf",2*pi*r);
    printf("圆的面积为:%.8lf",pi*r*r);
}
同求解决方法
2014-03-24 12:17
快速回复:关于圆的面积求算问题,找了以前的贴,但得不到很好帮助。
数据加载中...
 
   



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

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