题解:洛谷 B2149 求三角形面积

【题目来源】

洛谷:B2149 求三角形面积 - 洛谷 (luogu.com.cn)

【题目描述】

编写一个程序,给定三条线段的长度 \(a,b,c\),判断这三条线段是否能够构成三角形。如果能够构成,则计算其面积。如果不能构成,输出 No solution.(注意句号)。

【输入】

输入只有一行,包含三个正实数 \(a,b,c\),小数点后最多只有一位,且每个数均不超过 \(100\)

【输出】

输出只有一行,如果能构成三角形,输出三角形的面积(保留两位小数),否则输出 No solution.

【输入样例】

3 4 5

【输出样例】

6.00

【算法标签】

《洛谷 B2149 求三角形面积》 #分支结构#

【代码详解】

#include <bits/stdc++.h>
using namespace std;
double a, b, c;  // 定义三条边的长度,必须是double类型

int main()
{
    // a, b, c 要定义成 double 类型! 
    cin >> a >> b >> c;  // 读入三条边的长度
  
    if (a + b > c && a + c > b && b + c > a)  // 检查是否能构成三角形
    {
        // 如果能组成三角形,则利用海伦公式计算面积
        double s = (a + b + c) / 2.0;  // 计算半周长
        double area = sqrt(s * (s - a) * (s - b) * (s - c));  // 计算面积
        printf("%.2f\n", area);  // 输出面积,保留两位小数
    }
    else
    {
        // 如果不能组成三角形
        cout << "No solution." << endl;
    }
  
    return 0;
}

【运行结果】

3 4 5
6.00
posted @ 2026-02-28 20:36  团爸讲算法  阅读(0)  评论(0)    收藏  举报