c++这题的结果不是12.5664 为什么 哪里有错??

来源:百度知道 编辑:UC知道 时间:2024/06/19 08:25:09
代码如下
#include<iostream>
#include<cmath>
#include<iomanip>
#include<fstream>
using namespace std;
const pi=3.14159265;
class Geometry
{
private:
double r,r1;
public:
Geometry(double i){r=i;}
~Geometry(){}
double area_yuan(double)
{
return pi*r*r;
}
double area_juxing(double)
{
return r1*r1;
}
double peri_yuan(double)
{
return r*2*pi;
}
double peri_juxing(double)
{
return 4*r1;
}
double diag(double)
{
return sqrt(2)*r;
}
};
int main()
{
double a;
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
cout.precision(4);
cin>>a;
Geometry c1(a);
cout<<fixed<<c1.area_yuan(a)<<" "<<fixed<<c1.peri_yuan(a)<<endl;

你要创建 input.txt,里面放一个数字啊 。

你可以这样创建:echo 3 > input.txt

bash@calabash:~$ echo 3 > input.txt
bash@calabash:~$ ./a.out
bash@calabash:~$ cat output.txt
28.2743 18.8496
bash@calabash:~$

你的程序没有错,但首先要确认有没有input.txt这个文件,还要确认input.txt中有没有数据,最后再去验证结果是否正确。

cout.precision(4);
改成cout.setprecision(4);