高级光能
1729 三角形面积(三边版本)经验值:800
题目描述 Description
已知三角形三边长a,b,c,要求三角形面积。如果无法计算,输出“No”。
输入描述 Input Description
三角形三边长度a,b,c,三个数字用空格隔开(1<=a,b,c,<=10000)
输出描述 Output Description
一行,一个数字,三角形的面积,保留2位小数
如果无法输出则输出No。
样例输入 Sample Input
3 4 5
样例输出 Sample Output
6.00
数据范围及提示 Data Size & Hint
已知三角形三边a,b,c,则 (p=(a+b+c)/2) 面积S=sqrt[p(p-a)(p-b)(p-c)]
我的代码
#include<iostream>
#include<cstdio>
#include<cmath>
/*
已知三角形三边a,b,c,则 (p=(a+b+c)/2) 面积S=sqrt[p(p-a)(p-b)(p-c)]
*/
using namespace std;
int main(){
double a,b,c,p;
cin>>a>>b>>c;
if(a+b>c&&a+c>b&&b+c>a){
p=(a+b+c)/2;
printf("%.2f",p*(p-a)*(p-b)*(p-c));
}else{
cout<<"No";
}
return 0;
}
为什么是20?
新手启示者
int a,b,c;
double p=0,s=0;
cin>>a>>b>>c;
if(a+b<=c||b+c<=a||c+a<=b){
cout<<"No";
return 0;
}
p=(a+b+c)/2.0;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("%.2f",s);
头文件
#include <bits/stdc++.h>