OJ期末刷题 问题 B: 求三角形面积-gyy

题目描述

输入三条边的长度,如果这三条边能构成三角形,则需要计算三角形面积,如果不能构成三角形则输出提示信息 "error input"。输出的面积按两位小数方式输出

输入

三条边的长度

输出

如果这三条边能构成三角形,则输出该三角形面积,如果这三条边不能构成三角形,则输出提示信息“error  input”

样例输入

3.3  4.4  5.5

样例输出

area=7.26

提示

输出面积时保留两位小数

代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
    double a,b,c,l,s,m;
    cin>>a>>b>>c;
    l=(a+b+c)/2;
    m=l*(l-a)*(l-b)*(l-c);
    if (a+b>c&&a-b<c&&b-a<c)
    {
        s=sqrt(m);
        cout<<"area="<<setiosflags(ios::fixed)<<setprecision(2)<<s;
    }
    else
        cout<<"error  input";
        return 0;
}

运行结果:

学习心得:

好好学习 天天向上



时间: 2024-08-10 07:04:15

OJ期末刷题 问题 B: 求三角形面积-gyy的相关文章

OJ期末刷题 Problem I: C/C++经典程序训练3---模拟计算器

Description 简单计算器模拟:输入两个整数和一个运算符,输出运算结果: Input 第一行输入两个整数: 第二行输入一个运算符(+.-.*./); Output 输出对两个数运算后的结果: Sample Input 30 50 * Sample Output 1500 代码: #include <iostream> using namespace std; int main() { int a,b; double c; char d; cin>>a>>b; c

【刷题小记67】三角形面积

描述 给你三个点,表示一个三角形的三个顶点,现你的任务是求出该三角形的面积 输入 每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示三个点的横纵坐标.(坐标值都在0到10000之间) 输入0 0 0 0 0 0表示输入结束 测试数据不超过10000组 输出 输出这三个点所代表的三角形的面积,结果精确到小数点后1位(即使是整数也要输出一位小数位) 分析:用向量法简单,向量的叉乘在定义上有:两个向量进行叉乘得到的是一个向量,方向垂直于这两个向量构成的平面,大小等于这两个向量组成

【c语言】给出三角形的三边长,求三角形面积

// 给出三角形的三边长,求三角形面积 // area = sqrt( s * ( s - a ) * ( s - b ) * ( s - c ) ) // s = ( a + b + c) / 2 #include <stdio.h> #include <math.h> int main() { int a,b,c; double s,area; printf("请输入三角形三个边长:"); scanf("%d%d%d",&a,&a

Maximal Area Quadrilateral CodeForces - 340B || 三点坐标求三角形面积

Maximal Area Quadrilateral CodeForces - 340B 三点坐标求三角形面积(可以带正负,表示向量/点的不同相对位置): http://www.cnblogs.com/xiexinxinlove/p/3708147.html https://jingyan.baidu.com/article/a65957f49596ab24e67f9be7.html 枚举对角线,求出在对角线两侧取任意点能得到的三角形的面积,然后对于每条对角线,最大值就是两侧面积最大值之和. 1

OJ刷题之《求a的b次方》

题目描述 编写函数POW,函数声明如下: int POW(int x,int y); //求x的y次方的函数声明 在以下程序的基础上,添加POW函数的定义,使程序能够正确执行. 提交时,只需要提交POW函数的定义代码即可. #include <iostream> using namespace std; int POW(int x,int y); //求x的y次方的函数声明 int main() { int a,b; cin>>a>>b; cout<<a&l

OJ刷题之《求n阶勒让德多项式》

题目描述 用递归方法求n阶勒让德多项式的值,递归公式为 n=0     pn(x) =1 n=1     pn(x) =x n>1     pn(x) =((2n-1)*x* pn-1(x) -(n-1)* pn-2(x))/n 结果保留2位小数. 输入 n和x的值. 输出 pn(x)的值. 样例输入 2 2 样例输出 5.50 提示 主函数已给定如下,提交时不需要包含下述主函数 /* C代码 */ int main() { int x,n; scanf("%d%d",&

OJ刷题之《求sinh(x)》

题目描述 写一函数求sinh(x)的值,求sinh(x)的近似公式为 sinh(x) = (ex-e-x)/2 ,其中用一个函数求ex .结果保留两位小数. 输入 x 输出 sinh(x)的值. 样例输入 1 样例输出 1.18 提示 主函数已给定如下,提交时不需要包含下述主函数 /* C代码 */ int main(){ double x; scanf("%lf",&x); printf("%.2f\n",udf_sinh(x)); return 0; }

OJ刷题之《求方程的根》

题目描述 求方程 的根,用三个函数分别求当b^2-4ac大于0.等于0.和小于0时的根,并输出结果.从主函数输入a.b.c的值. 输入 a b c 输出 x1=? x2=? 样例输入 4 1 1 样例输出 x1=-0.125+0.484i x2=-0.125-0.484i 提示 主函数已给定如下,提交时不需要包含下述主函数 /*  C代码或C++代码   */ int main() { float a,b,c,q; void shigen(float,float,float); void den

C++刷题——2830: 递归求1*1+2*2+3*3+……+n*n

Description 定义一个递归函数sum int sum(int n); //函数声明,返回12+22+32+--+n2的和 注意:sum为递归函数 Input 正整数n的值 Output 12+22+32+--+n2的和 Sample Input 5 Sample Output 55 /* Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年 6 月 1 日 *