7-13 判断是否能构成三角形 (20分)
输入三个正数,判断是否能够构成三角形;如果不能构成三角形则输出:Error;如果能够构成三角形则输入:三角形的面积;
输入格式:
输入三行,每行一个正数
输出格式:
一行计算结果
输入样例:
0.3
0.4
0.5
输出样例:
0.06
坑:
挺简单的题,一个点一直过不去,最后问了大佬才知道,c++做这个题要调整精度位,保留十五位精度。。。。。。
代码:
#include <bits/stdc++.h>
using namespace std;
bool Rec(double a,double b, double c)
{
return a+b>c && a+c>b && b+c>a;
}
double area(double a,double c,double b){
double x,d=(a+b+c)/2;
x=d*(d-a)*(d-b)*(d-c);
return pow(x,0.5);
}
int main() {
double a,b,c;
cin>>a>>b>>c;
if(Rec(a,b,c)){
stringstream g;
g<<setprecision(15)<<area(a,b,c);
string h=g.str();
cout<<h<<endl;}
else cout<<"Error"<<endl;
return 0;
}