三角形面积
题目描述
一个三角形的三边长分别是 a、b、c,那么它的面积为 p ( p − a ) ( p − b ) ( p − c ) \sqrt{p(p-a)(p-b)(p-c)} p(p−a)(p−b)(p−c),其中 p = 1 2 ( a + b + c ) p=\frac{1}{2}(a+b+c) p=21(a+b+c) 。输入这三个数字,计算三角形的面积,四舍五入精确到 1 位小数。
输入格式
第一行输入三个实数 ,以空格隔开。
输出格式
输出一个实数,表示三角形面积。精确到小数点后 位。
输入输出样例 #1
输入 #1
3 4 5
输出 #1
6.0
说明/提示
数据保证能构成三角形,,每个边长输入时不超过 位小数。
C
include <stdio.h>
include <math.h>
int main() {
double a, b, c;
// 读取输入
scanf("%lf %lf %lf", &a, &b, &c);
// 计算半周长
double p = (a + b + c) / 2;
// 计算面积
double area = sqrt(p * (p - a) * (p - b) * (p - c));
// 输出结果,精确到小数点后 1 位
printf("%.1f", area);
return 0;
}
C++
include <iostream>
include <iomanip>
include <cmath>
int main() {
double a, b, c;
// 读取输入
std::cin >> a >> b >> c;
// 计算半周长
double p = (a + b + c) / 2;
// 计算面积
double area = std::sqrt(p * (p - a) * (p - b) * (p - c));
// 输出结果,精确到小数点后 1 位
std::cout << std::fixed << std::setprecision(1) << area;
return 0;
}
Python
# 读取输入
a, b, c = map(float, input().split())
# 计算半周长
p = (a + b + c) / 2
# 计算面积
area = (p * (p - a) * (p - b) * (p - c)) ** 0.5
# 输出结果,精确到小数点后 1 位
print(f"{area:.1f}")
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取输入
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
// 计算半周长
double p = (a + b + c) / 2;
// 计算面积
double area = Math.sqrt(p * (p - a) * (p - b) * (p - c));
// 输出结果,精确到小数点后 1 位
System.out.printf("%.1f", area);
scanner.close();
}
}
梦想可以大,第一步总是小的!