C语言例题——计算三角形的面积(通过边长或者顶点)

2024-01-10 02:32

本文主要是介绍C语言例题——计算三角形的面积(通过边长或者顶点),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 通过边长计算三角形的面积
    科普时间,这里需要用到海伦公式:

假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:
在这里插入图片描述
而公式里的p为半周长(周长的一半)。
在这里插入图片描述

#include "stdio.h"
#include "math.h"void main() {//输入三角形的三个边计算三角形的面积double a, b, c, area, p;printf("请输入三角形的三个边长");//%lf代表双精度浮点型数据scanf("%lf%lf%lf", &a, &b, &c);//判断输入的值是否构成三角形,如果任意两边和大于第三个边,计算面积if (a + b > c && a + c > b && b + c > a) {p = (a + b + c) / 2.0;//sqrt()返回某个数的平方根area = sqrt(p * (p - a) * (p - b) * (p - c));printf("三角形面积是:%.2lf", area);} else {printf("无法构成三角形");}}
  • 通过输入三角形的三个顶点计算三角形的面积
    和上面直接输入三角形的三个边长相比,这里只是多了一步求边长,用到我们高中学到的两点间的距离公式,其余步骤相同。
#include "stdio.h"
#include "math.h"void main() {int x1, y1, x2, y2, x3, y3;double a, b, c, p, area;printf("请输入第1个点的坐标:");scanf("%d%d", &x1, &y1);printf("请输入第2个点的坐标:");scanf("%d%d", &x2, &y2);printf("请输入第3个点的坐标:");scanf("%d%d", &x3, &y3);//计算三个边的长度,点与点之间的距离  pow(double x, double y) 返回x 的y 次幂a = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));b = sqrt(pow(x1 - x3, 2) + pow(y1 - y3, 2));c = sqrt(pow(x2 - x3, 2) + pow(y2 - y3, 2));//和上面一样if (a + b > c && a + c > b && b + c > a) {p = (a + b + c) / 2.0;//sqrt()返回某个数的平方根area = sqrt(p * (p - a) * (p - b) * (p - c));printf("三角形面积是:%.2lf", area);} else {printf("输入的三个点无法构成三角形");}}

初学C语言,如有错误,还望指正,因考试需要,代码运行环境为:
在这里插入图片描述
不同编译器和不同版本C语言代码略有不同。

这篇关于C语言例题——计算三角形的面积(通过边长或者顶点)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

【WebGPU Unleashed】1.1 绘制三角形

一部2024新的WebGPU教程,作者Shi Yan。内容很好,翻译过来与大家共享,内容上会有改动,加上自己的理解。更多精彩内容尽在 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信号:digital_twin123 在 3D 渲染领域,三角形是最基本的绘制元素。在这里,我们将学习如何绘制单个三角形。接下来我们将制作一个简单的着色器来定义三角形内的像素

XTU 1237 计算几何

题面: Magic Triangle Problem Description: Huangriq is a respectful acmer in ACM team of XTU because he brought the best place in regional contest in history of XTU. Huangriq works in a big compa

POJ3041 最小顶点覆盖

N*N的矩阵,有些格子有物体,每次消除一行或一列,最少要几次消灭完。 行i - >列j 连边,表示(i,j)处有物体,即 边表示 物体。 import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;impo

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX