三角形类

 

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:      设计三角形类,通过构造函数,是对象在定义时能够进行初始化。                       
* 作    者:                     张启立        
* 完成日期:        2012 年  3   月     19   日
* 版 本 号:          1.002

* 对任务及求解方法的描述部分
* 输入描述: 十进制数
* 问题描述: 。。。。。。
* 程序输出: 二进制数
* 程序头部的注释结束

#include<iostream>

#include<Cmath>

using namespace std;

class Triangle
{
public:
    Triangle(float x = 10, float y = 10, float z = 10);
	float perimeter(void);         //计算三角形的周长
	float area(void);         //计算并返回三角形的面积
	void showMessage();
private:
	float a,b,c;             //三边为私有成员数据
};

Triangle::Triangle(float x, float y, float z)
{
	a = x;

	b = y;

	c = z;
}

void main(void)
{
	Triangle Tri1;	//定义三角形类的一个实例(对象)

	Tri1.showMessage();

	Triangle Tri2(7, 8, 9);	//定义三角形类的一个实例(对象)

	Tri2.showMessage();

	system("PAUSE");

}

void Triangle::showMessage()
{
	cout << "三角形的三边长分别为:" << a << "  " << b << "  " << c << endl;

	cout << "该三角形的周长为:" << perimeter() << '\t' << "面积为:" << area() << endl;
}

float Triangle::perimeter(void)
{
	return (a + b + c);
}

float Triangle::area(void)
{
	float p = (a + b + c) / 2;  

    return sqrt(p * (p - a) * (p - b) * (p - c)); 
}

### C语言实现三角形分类算法 在C语言中,可以通过输入三条边长来判断三角形的类型。以下是一个完整的实现方法,涵盖了所有可能的三角形分类情况,并结合了引用中的相关内容[^1]。 #### 算法逻辑 1. 首先验证输入的三边是否能构成一个有效的三角形。根据三角形不等式,任意两边之和必须大于第三边。 2. 如果三边可以构成三角形,则进一步判断其类型: - 如果三边相等,则为等边三角形。 - 如果仅有两边相等,则为等腰三角形。 - 如果满足勾股定理(两短边平方和等于最长边平方),则为直角三角形。 - 如果两短边平方和小于最长边平方,则为钝角三角形。 - 如果两短边平方和大于最长边平方,则为锐角三角形。 3. 输出对应的三角形类型。 #### 实现代码 以下是一个完整的C语言程序,用于实现上述逻辑: ```c #include <stdio.h> #include <math.h> int main() { int a, b, c; printf("请输入三条边的长度:\n"); scanf("%d %d %d", &a, &b, &c); // 判断是否构成三角形 if (a + b > c && a + c > b && b + c > a) { // 判断是否为等边三角形 if (a == b && b == c) { printf("Equilateral triangle\n"); // 等边三角形 } // 判断是否为等腰三角形 else if (a == b || a == c || b == c) { printf("Isosceles triangle\n"); // 等腰三角形 } // 计算角度类型 else { int max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c); int sum_sq = a * a + b * b + c * c - max * max; if (sum_sq == max * max) { printf("Right triangle\n"); // 直角三角形 } else if (sum_sq > max * max) { printf("Acute triangle\n"); // 锐角三角形 } else { printf("Obtuse triangle\n"); // 钝角三角形 } } } else { printf("Not triangle\n"); // 不能构成三角形 } return 0; } ``` #### 注意事项 - 输入的三边长度应为正整数。 - 使用 `math.h` 库中的函数时,需确保编译器支持该库。 - 在实际应用中,可以添加更多的输入验证逻辑以增强程序的健壮性。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值