//《C语言综合项目实战》项目一
//讨论三角形是否成立问题,可以从三角形两边之和大于第三边这个性质出发
//可以私用&&运算符构建一个if语句,或者使用if语句的嵌套。
#include<stdio.h>//因为需要使用输入和输出函数,所以需要抵用头文件<stdio.h>
#include<math.h>//因为主函数内要使用sqrt函数,所以需要使用头文件<math.h>
int main() {
int a = 0, b = 0, c = 0, e = 0,f=0,g=0;//声明整形变量a,b,c,e,f,g
//a,b,c代表着三角形的三边。
//e,f,g将三边的大小关系排列出来,e为最大值。
double d = 0, S = 0;//声明双精度型浮点变量d,S
printf("请输入三个数字a,b,c能否构成三角形:");
scanf_s("%d%d%d", &a, &b, &c);//输入三个数字,以构建三角形的三边。
if (a + b > c) {//第一层if语句
if (b + c > a) {//第二层if语句
if (a + c > b) {//第三层if语句
printf("%d,%d,%d三个数字可以构成三角形\n", a, b, c);
d = (a + b + c) / 2;//使用三角形的面积公式,先计算出三边之和再除于二
S = sqrt(d * (d - a) * (d - b) * (d - c));//运用计算公式,计算出三角形的面积。
printf("三角形面积为:%f\n", S);
if (a > b) {//if语句的嵌套,是为了将三边的大小关系罗列出来。
//此时前置条件为a>b,即现在不比较C的情况下a为最大值。
//所以如果a>C,即可以认为a>b&&a>c,所以此时a为最大值。
if (a > c) {
e = a;//将最大值赋予e;
f = b;
g = c;
}
//此时前置条件为a>b,即现在不比较C的情况下a为最大值。
//所以如果a!>c,即可以认为c>a>c,所以此时c为最大值。
else {
e = c;//将最大值赋予e;
f = a;
g = b;
}
}
//此时前置条件为a!>b,即现在不比较C的情况下b为最大值。
//所以如果b>c,即可以认为b>a&&b>c,所以此时b为最大值。
else {
if (b > c) {
e = b;//将最大值赋予e;
f = a;
g = c;
}
//此时前置条件为a!>b,即现在不比较C的情况下b为最大值。
//所以如果b!>c,即可以认为c>b>a,所以此时c为最大值。
else {
e = c;//将最大值赋予e;
f = a;
g = b;
}
}
//因为此时f,g都不是最大值,即不为直角三角形的斜边。
//若面积能够等于底X高除于二,即代表着该三角形为直角三角形。
if (S == (f * g) / 2) {
printf("该三角形为直角三角形");
}
//等腰三角形,即是两边相等,另一边不相等,所以使用if语句,构建出条件
//若有两边相等,且不等于第三边,这为等腰三角形。
if (a == b&&a!=c) {
printf("该三角形为等腰三角形");
}
if (a == c&&a!=b) {
printf("该三角形为等腰三角形");
}
if (b == c&&b!=a) {
printf("该三角形为等腰三角形");
}
//使用&&运算符,将三边相等的条件并起来。
//若三边相等,即为等边三角形。
if (a == b && a == c && b == c) {
printf("该三角形为等边三角形");
}
}
//不满足两边之和大于第三边这个条件,即输入的三个数字不足以构成一个三角形。
else {
printf(" %d,%d,%d三个数字不可以构成三角形", a, b, c);//第三层if语句的else条件
}
}
//不满足两边之和大于第三边这个条件,即输入的三个数字不足以构成一个三角形。
else { ("%d,%d,%d三个数字不可以构成三角形", a, b, c); }//第二层if语句的else条件
}
//不满足两边之和大于第三边这个条件,即输入的三个数字不足以构成一个三角形。
else {
printf("%d,%d,%d三个数字不可以构成三角形",a,b,c);//第一层if语句的else条件
}
}
//总结:在讨论三角形是否成立问题,以及计算三角形的面积和讨论三角形为什么形状的三角形问题上,首先在数据精度方面
//double类型的数据会有些许不准确。
//代码行可以再进行简略。
//有时候会出现面积计算出为0的情况。
//要考虑当前三角形是多种类型的三角形的情况。
#C语言学习笔记#三角形问题
最新推荐文章于 2024-03-22 00:15:47 发布