【洛谷 B2031】计算三角形面积 题解(顺序结构+海伦公式)

本文主要是介绍【洛谷 B2031】计算三角形面积 题解(顺序结构+海伦公式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

计算三角形面积

题目描述

平面上有一个三角形,它的三个顶点坐标分别为 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_1,y_1),(x_2,y_2),(x_3,y_3) (x1,y1),(x2,y2),(x3,y3),那么请问这个三角形的面积是多少。

输入格式

输入仅一行,包括 6 6 6 个双精度浮点数,分别对应 x 1 , y 1 , x 2 , y 2 , x 3 , y 3 x_1,y_1,x_2,y_2,x_3,y_3 x1,y1,x2,y2,x3,y3

输出格式

输出也是一行,输出三角形的面积,精确到小数点后两位。

样例 #1

样例输入 #1

0 0 4 0 0 3

样例输出 #1

6.00

思路

在main函数中,声明了多个float类型的变量,用于存储用户输入的坐标和计算结果。

使用scanf函数从标准输入读取6个浮点数,分别为三个顶点的坐标(x1, y1),(x2, y2),(x3, y3),并将它们分别存储到对应的变量中。

然后,调用自定义函数AB,计算三个边的长度a、b、c。

接下来,计算半周长p,即三边长度之和的一半。

然后,使用sqrt函数计算面积s,通过海伦公式:s = sqrt(p * (p - a) * (p - b) * (p - c))。

最后,使用printf函数将面积s的值以%.2f的格式打印出来,保留两位小数。


AC代码

#include <iostream>
#include <cstdio>
#include <cmath>
#define AUTHOR "HEX9CF"
using namespace std;float AB(float x1, float x2, float y1, float y2)
{return sqrt(pow((x1 - x2), 2) + pow((y1 - y2), 2));
}int main()
{float x1, x2, x3, y1, y2, y3, a, b, c, p, s;scanf("%f%f%f%f%f%f", &x1, &y1, &x2, &y2, &x3, &y3);a = AB(x1, x2, y1, y2);b = AB(x1, x3, y1, y3);c = AB(x3, x2, y3, y2);p = (a + b + c) / 2;s = sqrt((p * (p - a) * (p - b) * (p - c)));printf("%.2f", s);return 0;
}

这篇关于【洛谷 B2031】计算三角形面积 题解(顺序结构+海伦公式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/437198

相关文章

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

Python中经纬度距离计算的实现方式

《Python中经纬度距离计算的实现方式》文章介绍Python中计算经纬度距离的方法及中国加密坐标系转换工具,主要方法包括geopy(Vincenty/Karney)、Haversine、pyproj... 目录一、基本方法1. 使用geopy库(推荐)2. 手动实现 Haversine 公式3. 使用py

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

SpringBoot利用树形结构优化查询速度

《SpringBoot利用树形结构优化查询速度》这篇文章主要为大家详细介绍了SpringBoot利用树形结构优化查询速度,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一个真实的性能灾难传统方案为什么这么慢N+1查询灾难性能测试数据对比核心解决方案:一次查询 + O(n)算法解决

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

Spring Bean初始化及@PostConstruc执行顺序示例详解

《SpringBean初始化及@PostConstruc执行顺序示例详解》本文给大家介绍SpringBean初始化及@PostConstruc执行顺序,本文通过实例代码给大家介绍的非常详细,对大家的... 目录1. Bean初始化执行顺序2. 成员变量初始化顺序2.1 普通Java类(非Spring环境)(