首页 > 试题广场 >

计算三角形的周长和面积

[编程题]计算三角形的周长和面积
  • 热度指数:55252 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
根据给出的三角形3条边a, b, c,计算三角形的周长和面积。

数据范围:

输入描述:
一行,三角形3条边(能构成三角形),中间用一个空格隔开。


输出描述:
一行,三角形周长和面积(保留两位小数),中间用一个空格隔开,输出具体格式详见输出样例。
示例1

输入

3 3 3

输出

circumference=9.00 area=3.90
import java.util.Scanner;

public class Main{

    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        double a=scanner.nextDouble();
        double b=scanner.nextDouble();
        double c=scanner.nextDouble();
        double len=a+b+c;
        //海伦公式
        double p=(a+b+c)/2;
        double area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
        System.out.println("circumference=+"+String.format("%.2f",len)+" area="+String.format("%.2f",area));
    }


}
发表于 2020-03-22 14:17:53 回复(1)
#include<stdio.h>
#include<math.h>
int main()
{
    float a,b,c;
    float p,s;
    scanf("%f%f%f",&a,&b,&c);
    p=(a+b+c)/2;
    s=sqrt(p*(p-a)*(p-b)*(p-c));//海伦公式
    printf("circumference=%.2f area=%.2f",a+b+c,s);
    return 0;
}

发表于 2021-07-06 21:42:15 回复(0)
#include<iostream>
#include<iomanip>
#include<math.h>
using namespace std;

int main(){
    int a,b,c;
    float p,s;
    cin>>a>>b>>c;
    p=(a+b+c)/2.0;
    s=sqrt(p*(p-a)*(p-b)*(p-c));
    cout<<fixed<<setprecision(2)<<"circumference="<<p*2<<" "<<"area="<<s;
    
    return 0;
}

发表于 2020-08-30 10:44:59 回复(0)
#include <iostream>
#
include <cmath>
using namespace std;
int main(){
    float a,b,c;
    scanf("%f %f %f",&a,&b,&c);
    float cir = a+b+c;
    float p = cir/2;
    float area = sqrt(p*(p-a)*(p-b)*(p-c));
    printf("circumference=%.2f area=%.2f",cir,area);
    return 0;
}
发表于 2020-03-11 17:42:29 回复(0)
这是在用海伦公式难为我?
p=(a+b+c)/2
S=sqrt(p*(p-a)*(p-b)*(p-c))

#include<iostream>
#include<cmath>
#define PAI 3.1415926
using namespace std;

int main()
{
    double a,b,c,cir,area,p;
    scanf("%lf %lf %lf",&a,&b,&c);
    cir=a+b+c;
    p=cir/2;
    area=sqrt(p*(p-a)*(p-b)*(p-c));
    printf("circumference=%.2lf area=%.2lf\n",cir,area);
    return 0;
}



发表于 2020-07-26 17:44:30 回复(1)
一开始先不着急计算,要先判断一下三个边能否满足三角形的规则。用到“两边之和大于第三边”这个判断条件进行判断。周长嘛很容易,就把三角形三个边加在一起就行了。而对于面积,直接应用海伦公式      
请注意数据类型,如果发现面积和周长的数据类型是正确的但是不管输入什么数据,结果都是错的,这个时候就要注意你输入的三个边是否都是double类型
#include<bits/stdc++.h>
using namespace std;
int main(){
    double a, b, c;
    cin >> a >> b >> c;
    if((a + b > c) && (a + c > b) && (b + c > a)){
        double C = a + b + c;
        double S;
        double p = (a + b + c) / 2;
        S = sqrt((p * (p - a) * (p - b) * (p - c)));
        cout << fixed << setprecision(2) << "circumference=" << C 
             << fixed << setprecision(2) << " area=" << S << endl;
    }
    return 0;
}


发表于 2020-05-30 21:26:21 回复(2)
#include <stdio.h>
#include <math.h>
int main()
{
    float a,b,c,p;
    scanf("%f %f %f",&a,&b,&c);
    p=(a+b+c)/2;
    printf("circumference=%.2f area=%.2f",a+b+c,sqrt(p*(p-a)*(p-b)*(p-c)));
}
发表于 2020-06-01 19:49:36 回复(0)
a,b,c = map(int,input().split(' '))
cir = a+b+c
s = cir/2
area = (s*(s-a)*(s-b)*(s-c))**0.5
print('circumference={:.2f} area={:.2f}'.format(cir,area))

发表于 2021-04-05 17:01:52 回复(0)
#include<stdio.h>
#include<math.h>
int main(void){
    int a, b, c;  // 用来存储三条边
    float p, circumference = 0, area = 0;  // p为中间变量,circumference为周长,area为面积
    
    scanf("%d %d %d", &a, &b, &c);  // 从键盘获取输入,存储到a/b/c中
    
    circumference = a + b + c;  // 计算三角形的周长
    p = (a + b + c) / 2.0;
    area = sqrt(p * (p-a) * (p-b) * (p-c));  // 根据海伦公式计算三角形的面积
    
    printf("circumference=%.2f area=%.2f", circumference, area);  // 打印三角形的周长和面积,保留2位小数
    
    return 0;
}
这一题也是没啥难度的,主要注意面积公式底乘高除2是走不通的,那样编写复杂度太高,海伦公式就比较简单了,然后注意p可能为浮点数,所以设为float类型
发表于 2022-01-29 11:11:17 回复(0)
发表于 2021-10-31 10:32:05 回复(1)
#include<stdio.h>
#include<math.h>

int main()
{
    float a,b,c;
    scanf("%f%f%f",&a,&b,&c);
    float cir = a+b+c;
    float p = cir/2;
    float area = sqrt(p*(p-a)*(p-b)*(p-c));
    printf("circumference=%.2f area=%.2f\n",cir,area);
    return 0;
}

发表于 2021-08-22 18:43:13 回复(0)
t = input()
m = float(t.split(' ')[0])
n = float(t.split(' ')[1])
z = float(t.split(' ')[2])
cir = m + n + z
# 海伦公式
s = cir / 2
area= (s*(s-m)*(s-n)*(s-z)) ** 0.5
print('circumference=%.2f area=%.2f'%(cir, area))


(2)
m,n,z = input().split(' ')
m = float(m)
n = float(n)
z = float(z)
cir = m + n + z
# 海伦公式
s = cir / 2
area= (s*(s-m)*(s-n)*(s-z)) ** 0.5
print('circumference=%.2f area=%.2f'%(cir, area))

编辑于 2021-07-15 21:58:46 回复(0)
#include <stdio.h>
#include <math.h>

int main() {
    float a, b, c;
    float p, s;

    scanf("%f%f%f", &a, &b, &c);

    //海伦公式
    p = (a + b + c) / 2;
    s = (float)sqrt((double)(p * (p - a) * (p - b) * (p - c)));

    printf("circumference=%.2f area=%.2f", p * 2, s);
    
    return 0;
}

编辑于 2024-03-02 20:34:42 回复(0)
#include <stdio.h>
#include<math.h>

//三角形面积=根号下(p(p-a)(p-b)(p-c)),p=(a+b+c)/2

int main()
{
    float a, b, c;
    scanf("%f %f %f", &a, &b, &c);

    float d = a + b + c;
    float p = d / 2;
    float s = sqrt((p) * (p - a) * (p - b) * (p - c));
    //sqrt是头文件为#include<math.h>的求根函数

    printf("circumference=%.2f area=%.2f", d, s);
    return 0;
}

发表于 2024-01-24 21:46:33 回复(0)
//海伦公式又译作希伦公式、海龙公式、希罗公式、海伦-秦九韶公式。它是利用三角形的三条边的边长直接求三角形面积的公式。
//表达式为:S = √p(p - a)(p - b)(p - c)
//假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:S = √p(p - a)(p - b)(p - c)
//
//而公式里的p为半周长(周长的一半):
//    a + b + c
//p = ————
//        2

#include<stdio.h>
#include<math.h>

double area(int a,int b,int c)
{
	double p = (a + b + c) / 2.00;
	double S = sqrt(p * (p - a) * (p - b) * (p - c));
	return S;
}

int main()
{
	int a = 0, b = 0, c = 0;		//三角形的三条边
	double s = 0.0, l = 0.0;

	scanf("%d %d %d", &a, &b, &c);

	while (1)
	{
		if (a + b > c && a + c > b && b + c > a)//两边之和大于第三边
		{
			//求面积
			s = area(a, b, c);
			//求周长
			l = a + b + c;
			break;
		}
		else
		{
			printf("您输入的边长,不满足三角形的条件,请重新输入");
		}
	}
	printf("circumference = %.2f area = %.2f\n", l, s);

	return 0;
}

发表于 2023-10-19 22:22:12 回复(0)
#include <stdio.h>
#include<math.h>
int main() {
    double a = 0.0;
    double b = 0.0;
    double c = 0.0;
    double p = 0.0;
    double s = 0.0;
    scanf("%lf %lf %lf", &a, &b, &c);
    p = (1 / 2.0) * (a + b + c);
    s = sqrt((p - a) * (p - b) * (p - c) * p);
    printf("circumference=%.2lf area=%.2lf", a + b + c, s);
    return 0;
}

发表于 2022-10-02 16:31:20 回复(0)
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
int main(){
    int a, b, c;
    float cir, area;
    cin >> a >> b >> c;
    cir = a + b + c;
    area = sqrt(cir/2 * (cir/2 - a) * (cir/2 -b) * (cir/2 -c));
    cout << fixed << setprecision(2) << "circumference=" << cir << " area=" << area << endl;
    return 0;
}

发表于 2022-08-14 19:25:56 回复(0)
#include<stdio.h>
#include<math.h>

int main()
{
    double a,b,c;       //3边长
    double p,cir,area;
    scanf("%lf %lf %lf",&a,&b,&c);
    cir=a+b+c;                                       //求周长
    p=(a+b+c)/2;
    area=sqrt(p*(p-a)*(p-b)*(p-c));        //海伦公式求面积
    printf("circumference=%.2f area=%.2f",cir,area);
    return 0;
}

发表于 2022-07-10 23:01:12 回复(0)
发表于 2022-06-07 17:51:38 回复(0)
#include<stdio.h>
#include<math.h>
int main()
{
    double a=0.0;
    double b=0.0;
   double c=0.0;
     double circumference=0.0;
    double area=0.0;
    scanf("%lf %lf %lf",&a,&b,&c);
    if(((a+b)>c)&&((a-b)<c))
    {
   double p=(a+b+c)/2;
    circumference=a+b+c;
    area=sqrt(p*(p-a)*(p-b)*(p-c));
    printf("circumference=%.2f area=%.2f\n",circumference,area);
    
    }
    
    return 0;
}

发表于 2022-05-12 12:02:01 回复(1)

问题信息

上传者:牛客309119号
难度:
166条回答 5034浏览

热门推荐

通过挑战的用户

查看代码
计算三角形的周长和面积