floor 函数的返回值是 double型的!!!

潜意识一直认为floor函数的返回值是int型整数,猛然才发现--潜意识是错的可怜

有这么一道简单的题:

计算球体积

时间限制:3000 ms  |  内存限制:65535 KB
难度:1

描述

根据输入的半径值,计算球的体积。

输入

             输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。(0<R<100)

输出
输出对应的球的体积,对于每组输入数据,输出一行,计算结果四舍五入为整数
Hint:PI=3.1415926
样例输入
1
1.5
样例输出
4
14

WA  代码:

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
# define pi 3.1415926
int main()
{
    float r;
    while(scanf("%f",&r)!=EOF)
    {
       printf("%d\n",floor(4.0*pi*r*r*r/3.0+0.5));
    }
    return 0;
}

AC 代码:

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
# define pi 3.1415926
int main()
{
    float r;
    while(scanf("%f",&r)!=EOF)
    {
       printf("%d\n",(int)(4.0*pi*r*r*r/3.0+0.5));
    }
    return 0;
}

二次AC 代码:

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
# define pi 3.1415926
int main()
{
    float r;
    while(scanf("%f",&r)!=EOF)
    {
       printf("%.0lf\n",floor(4.0*pi*r*r*r/3.0+0.5));
    }
    return 0;
}

错误之处很容易比较出啊可怜

 

posted on 2011-08-22 10:17  java课程设计例子  阅读(238)  评论(0编辑  收藏  举报