这是老师留的一个作业,要求判断三角形的类型(作业只要求判断等腰
,等边
和是不是三角形
),但是这样不能很精准地描绘一个三角形的特征,所以我在代码中加入了判断直角
,钝角
和锐角三角形
下面是代码(要是有改进的地方希望大家留言评论):
#include<stdio.h>
int main(){
int a, b, c;
printf("这是一个判断三角形类型的程序\n");
printf("下面请输入要判断三角形的三边: \n");
printf("输入a边的长度: \n");
scanf("%d",&a);
printf("输入b边的长度: \n");
scanf("%d",&b);
printf("输入c边的长度: \n");
scanf("%d",&c);
if((a + b > c) && (b + c > a) && (a + c > b) ){
printf("这是一个三角形\n");
if((a*a + b*b == c*c) || (a*a + c*c == b*b) || (c*c + b*b == a*a)){
printf("这还是一个直角三角形\n");
if((a == b) || (b == c) || (a == c)){
printf("这同时是一个等腰三角形\n");
}
else{
return 0;
}
}
else if((a*a + b*b < c*c) || (a*a + c*c < b*b) || (c*c + b*b < a*a)){
printf("这同时是一个钝角三角形\n");
if((a == b) && (b == c) && (c == a)){
printf("这还是一个等边三角形\n");
}
else if((a == b) || (b == c) || (a == c)){
printf("这还是一个等腰三角形\n");
}
else{
return 0;
}
}
else if((a*a + b*b > c*c) || (a*a + c*c > b*b) || (c*c + b*b > a*a)){
printf("这同时是一个锐角三角形\n");
if((a == b) && (b == c) && (c == a)){
printf("这还是一个等边三角形\n");
}
else if((a == b) || (b == c) || (a == c)){
printf("这还是一个等腰三角形\n");
}
else{
return 0;
}
}
}
else{
printf("这不是一个三角形\n");
}
return 0;
}