#include <stdio.h> #include <windows.h> #include <math.h> int main() { int a, b, c; //三条边长 float area, perimeter; //面积 ,周长 int t; system("title Triangle Judgment Procedure"); printf("input three nuber:"); scanf("%d%d%d", &a, &b, &c); getchar(); //排序 ps:因为后面的三角形类型判断会用 if (a < b) { t = a; a = b; b = t; } if (a < c) { t = a; a = c; c = t; } if (b < c) { t = b; b = c; c = t; } // printf("%d%d%d",a,b,c); perimeter = a + b + c; float per = perimeter / 2; area = sqrt(per * (per - a) * (per - b) * (per - c)); if (a + b > c || a + c > b || b + c > a) { //输出周长以及面积 printf("Circumference of triangle:%.2f\n", perimeter); printf("Triangular area:%.2f\n", area); //判断是什么三角形 if ((pow(b, 2) + pow(c, 2)) > pow(a, 2)) printf("Triangle type:锐角\n"); else if ((pow(b, 2) + pow(c, 2)) == pow(a, 2)) printf("Triangle type:直角\n"); else if ((pow(b, 2) + pow(c, 2)) < pow(a, 2)) printf("Triangle type:钝角\n"); //下面是判断是什么特殊三角形 if ((a == b && a != c) || (c == b && c != a) || (a == c && a != b)) printf("等腰三角形\n"); else if (a == b && a == c) printf("等边三角形\n"); else printf("特殊三角形:ERROR!"); } else printf("ERROR!"); getchar(); return 0; }
原本的问题是:输入三条边的长度,判断是否构成三角形,如果构成输出周长以及面积。
我写的程序多出一部分是判断是什么类型的三角形。