注册 登录
编程论坛 C++教室

求助,急急急急急急

谌俭 发布于 2008-10-17 15:20, 1002 次点击
Problem Description
根据输入的半径值,计算球的体积。
 

Input
输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。
 

Output
输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
 

Sample Input
1
1.5
 

Sample Output
4.189
14.137

Hint
#define PI 3.1415927

我编的程序怎么不对??请各位指点指点
#include "iostream"
#include "iomanip"
const double PI=3.1415927;
using namespace std;
int main()
{
    float n;
    double area;
    while(cin>>n)
    {
        area=4*PI*n*n*n/3;
        cout<<setprecision(4)<<area<<endl;
    }
    return 0;
}
16 回复
#2
blueboy820062008-10-17 15:23
你觉得有什么问题。。。
#3
blueboy820062008-10-17 15:25
我看没问题。。。
#4
blueboy820062008-10-17 15:26
谌俭兄弟最近挺用功啊。。。
这个题库是哪的啊。。。
#5
谌俭2008-10-17 15:30
我输入1没问题。可是输入1.5就有问题了
题库是我们学校里的,我还属于C++的初级阶段,还望版主多多指点
#6
blueboy820062008-10-17 15:35
输入1.5
输出14.14
有什么问题。。。??
#7
谌俭2008-10-17 15:36
题目要求输出14.137
要三位小数,14.14不是只有两位小数吗?
#8
blueboy820062008-10-17 15:39
哦。这个与你保留的有关啊。。。
你setprecision(5)就行了。。。
#9
blueboy820062008-10-17 15:40
你再研究吧。。。我先闪。。。
#10
谌俭2008-10-17 15:45
setprecision(5)也不行
#11
冰烨2008-10-17 15:48
cout<<setiosflags(ios::fixed)<<setprecision(3)<<area<<endl;
应该这样写,意思是保留3位小数
加了setiosflags(ios::fixed)表示只固定小数点右边的数字


cout<<setprecision(4)<<area<<endl;

只这样的话是保留4位有效数字小数点左右两边的数字都算

[[it] 本帖最后由 冰烨 于 2008-10-17 15:55 编辑 [/it]]
#12
谌俭2008-10-17 16:01
恩,这个方法在编译器上确实行,但到其他地方为什么会说错误答案呢
#13
冰烨2008-10-17 16:03
[bo][un]谌俭[/un] 在 2008-10-17 16:01 的发言:[/bo]

恩,这个方法在编译器上确实行,但到其他地方为什么会说错误答案呢

到其他地方为什么会说错误答案
什么意思?举个例子。。。
#14
谌俭2008-10-17 16:05
acm.hdu.
2002题,楼主去看看把
#15
冰烨2008-10-17 16:09
你不就是楼主么?、
我找不到达2002T。。。
#16
谌俭2008-10-17 16:11
http://acm.hdu.
#17
谌俭2008-10-17 16:12
就拜托你了,一定要帮我解决这个问题哦
1