标题:奇怪,圆的面积显示出来是错误的??
只看楼主
raygelion
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2015-3-4
结帖率:75%
已结贴  问题点数:20 回复次数:2 
奇怪,圆的面积显示出来是错误的??
首先,我看视频教程,里面有个例题是这样写的:
#include <stdio.h>
void main ()
{
    float PI=3.14159;
    int s,r=5;
    s=r*r*PI;
    printf("s=%d\n",s);
}
视频教程里面说,PI是实型,在编译器编译的时候,都会自动转换为double。
而r是整型,当r跟PI这两个数字发生计算的时候,都会转换成double型计算。
s也是整型,所以赋予的值最终也是整型,舍弃了小数点部分。
我自己在VC6里面做了一遍,结果是 s=78。

然后我想了一下,不把圆面积计算出来乘积的小数部分舍弃,于是做了如下修改:

#include <stdio.h>
void main ()
{
    double s,PI=3.14159;
    int r=5;
    s=r*r*PI;
    printf("s=%d\n",s);
}
编译之后,没有error,也没有warning
不过最后结果却是 s=1133871366

请问,我是出了什么差错吗?
搜索更多相关主题的帖子: include double 编译器 视频教程 小数点 
2015-03-05 15:28
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:20 
#include <stdio.h>
 void main ()
 {
     double s,PI=3.14159;
     int r=5;
     s=r*r*PI;
     printf("s=%lf\n",s);
 }
double型要用%lf

一片落叶掉进了回忆的流年。
2015-03-05 15:33
raygelion
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2015-3-4
得分:0 
回复 2楼 诸葛欧阳
谢谢!
2015-03-05 15:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442375-1-1.html




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

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