【20190428】【编程实战C/Python】判断三角形的类型

一、问题描述

输入三边长度,判断组成的三角形类型,并输出它的面积和类型。

二、分析

第一步: 判断是否能组成三角形,再进行判断!

第二步: 三角形分类(等边、等腰、直角、普通) 

三、代码

 1. C语言实现

#include
#include
#include   // pow(x, y)和sqrt()的头文件
void main() {
	float a, b, c;
	float s, area;
	printf("请输入三条边的长度:\n");
	scanf_s("%f,%f,%f", &a, &b, &c);
	// 首先进行判断,是否能组成三角形(两边之和大于第三边)
	if (!(a + b > c && a + c > b && b + c > a))
		printf("Error! 不能组成三角形!\n");
	else {
		s = (a + b + c) / 2;
		area = (float)sqrt(s * (s - a) * (s - b) * (s - c));  // 数据类型转换
		printf("三角形面积是:%f\n", area);
		if (a == b && a == c && b == c)
			printf("等边三角形!\n");
		else if (a == b || a == c || b == c)
			printf("等腰三角形!\n");
		else if (pow(a, 2) + pow(b, 2) == pow(c, 2) || pow(a, 2) + pow(c, 2) == pow(a, 2) \
			|| pow(b, 2) + pow(c, 2) == pow(a, 2))
			printf("直角三角形!\n");
		else
			printf("普通三角形!\n");
	}
	system("pause");
}

2. Python实现

#Exam_1_TypeOfTriangle.py
from math import sqrt
a, b, c = eval(input("请输入三条边的长度[逗号隔开]:\n"))
if a+b>c and a+c>b and b+c > a:
    s = (a+b+c)/2
    area = sqrt(s*(s-a)*(s-b)*(s-c))
    print("三角形面积为:{}". format(area))
    if a == b == c:
        print("等边三角形!\n")
    elif a==b or a==c or b== c:
        print("等腰三角形!\n")
    elif pow(a,2) + pow(b,2) == pow(c,2) or pow(a,2) + pow(c,2) == pow(b,2) \
             or pow(b,2) + pow(c,2) == pow(a,2):
        print("直角三角形!\n")
    else:
        print("普通三角形!\n")
else:
    print("不能组成三角形!\n")

四、知识点

1. C语言实现里面的 pow() 和 sqrt() 函数要加头文件

2. 不论是C语言还是Python,编写代码如果一行太长,可以用 '\' 来换行。

3. 用scanf_s (C) 或者 input(Python) 获取数据时,输入时字符也要用英文的,中文会报错!

 【20190428】【编程实战C/Python】判断三角形的类型_第1张图片【20190428】【编程实战C/Python】判断三角形的类型_第2张图片【20190428】【编程实战C/Python】判断三角形的类型_第3张图片【20190428】【编程实战C/Python】判断三角形的类型_第4张图片【20190428】【编程实战C/Python】判断三角形的类型_第5张图片

结论:可以输入空格(多少个都可以,前提scanf_s参数是用逗号分隔开的),但是不能用中文的 ','!

 4. Python里面:与(and)、或(or)。

【20190428】【编程实战C/Python】判断三角形的类型_第6张图片

5. eval的使用,不使用eval会报错。

【20190428】【编程实战C/Python】判断三角形的类型_第7张图片

6. 数据类型转换 (未解决,为什么要加float,不加为什么报错???)

7. printf若想输出,必须有格式控制字符,例如:%f%d等,不然会报错,传递参数过多。

【20190428】【编程实战C/Python】判断三角形的类型_第8张图片

8. Python3开方运算(三种方式)

第一:使用内置函数pow,例如:pow(X, 0.5);

第二:使用数学表达式:x**0.5,'**'表示乘方;

第三:使用math模块,import math 或者 from math import sqrt:sqrt(x) / math.sqrt(x)。

 

 

你可能感兴趣的:(编程实战(C/Python))