c++保留精度位 PTA 7-13 判断是否能构成三角形
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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效