蓝桥杯c/c++程序设计——三角形的面积

三角形面积

问题描述
由三角形的三边长,求其面积。

提示:由三角形的三边a,b,c求面积可以用如下的公式:

s=(a+b+c)/2

面积=sqrt(s*(s-a)*(s-b)*(s-c));
输入格式
由空格分开的三个整数。
输出格式
一个实数,保留两位小数。
样例输入
3 4 5
样例输出
6.00
数据规模和约定
输入的三条边一定能构成三角形,不用进行判定。a,b,c小于1000

运行限制

语言最大运行时间最大运行内存
C++1s256M
C1s256M
Python35s256M
Java3s256M
PyPy35s256M
Go5s256M
JavaScript5s256M

 

这段代码首先包含了必要的头文件。然后,它定义了三个整数变量abc,用来存储三角形的三条边长。

接下来,通过输入流cin从用户处获取三角形的三条边长。

然后,它定义了两个double类型的变量sums,其中sum用于存储半周长(a+b+c)/2.0s用于存储三角形的面积。

接着,使用sqrt()函数计算并存储了海伦公式中的表达式sqrt(sum*(sum-a)*(sum-b)*(sum-c)),即三角形的面积。

最后,使用cout进行输出,并通过fixedsetprecision(2)设置输出格式为小数点后两位小数。

这段代码可以正确计算并输出三角形的面积。需要注意输入的三条边长是否合理。

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
  int a,b,c;
  cin>>a>>b>>c; // 输入三角形的三条边长
  double sum=0,s=0;
  sum=(a+b+c)/2.0; // 计算半周长
  s=sqrt(sum*(sum-a)*(sum-b)*(sum-c)); // 使用海伦公式计算面积
  cout<<fixed<<setprecision(2)<<s; // 设置输出格式为小数点后两位
  return 0;
}

 

这样注释之后,每一行的功能都得到了解释,可以更好地理解和阅读代码。其中主要完成了以下步骤:

  1. 引入了必要的头文件。
  2. 定义了三个整数变量abc,用于存储三角形的三条边长。
  3. 使用输入流cin从用户输入中获取三角形的三条边长。
  4. 定义了两个double类型的变量sums,其中sum用于存储半周长(a+b+c)/2.0s用于存储三角形的面积。
  5. 通过应用数学库中的sqrt()函数,使用海伦公式计算并存储三角形的面积,公式为`sqrt(sum*(sum-a)(sum-b)(sum-c
sqrt(sum*(sum-a)*(sum-b)*(sum-c));

 这行代码使用了C++标准库中的sqrt函数来计算表达式sum*(sum-a)*(sum-b)*(sum-c)的平方根。在这个上下文中,这个表达式代表了海伦公式中的部分,用于计算三角形的面积。具体来说:

  1. sum 是三角形半周长,即 (a + b + c) / 2.0
  2. (sum - a)(sum - b) 和 (sum - c) 分别代表海伦公式中的三个因子。
  3. 表达式 sum*(sum-a)*(sum-b)*(sum-c) 计算了海伦公式中根号下的部分。
  4. 最终通过 sqrt 函数计算了整个海伦公式,得到了三角形的面积。
fixed<<setprecision(2)

fixed 和 setprecision(2) 是 C++ 中用于设置输出格式的控制符。

  • fixed 控制符用于将浮点数的输出格式设置为固定小数点(即小数形式),而不是科学计数法。换句话说,它确保浮点数以小数形式显示。
  • setprecision(2) 控制符用于设置浮点数的小数点后的位数为 2 位,这意味着浮点数将被格式化为小数点后两位的格式。

在上下文中,cout<<fixed<<setprecision(2)<<s; 这行代码将输出变量s的值,并使用上述设置确保输出的浮点数格式为小数形式并且小数点后保留两位数字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张謹礧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值