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;
}