在C語音中經(jīng)常會需要判斷三角型類型,那么你知道如何用
C語言判斷三角型類型,對于這個問題是不是有很多小伙伴們還是很疑惑的呢?那么下面的內(nèi)容中小編就為大家詳細介紹C語言判斷三角型類型的方法。
#include <stdio.h>
#include <stdlib.h>
#define?EPSINON??1e-3
#define?ABS(a)??(((a)>0)?(a):(-a)) //?:不支持表達式嵌套
#define ZERO(x)??((x)>-EPSINON && (x)<EPSINON)
#define MAX(a,b)?(((a)>(b))?(a):(b))
#define MIN(a,b)?(((a)<(b))?(a):(b))
float a, b, c;
float max, mid, min;
char input_err_flag = 0;
char judge_err_flag = 0;
int equal(float a, float b)
{
?float tmp;
?tmp = a - b;
?tmp = ZERO(ABS(tmp));
?return tmp;
}
void input(void)
{
?a = b = c = 0;
?printf("輸入三條邊的值:");
?scanf("%f %f %f",&a, &b, &c);
?if(!(a>0) || !(b>0) || !(c>0))
?{
??input_err_flag = 1;
?}
}
void sort(void)
{
?max = MAX(MAX(a,b),c);
?min = MIN(MIN(a,b),c);
?if(MAX(a,b) < c)
??mid = MAX(a,b);
?else
??mid = MAX(MIN(a,b),c);
}
void judge(void)
{
?float max_square, mid_square, min_square, tmp;
?if(max >= (mid+min))
?{
??judge_err_flag = 1;
?}
?else
?{
??max_square = max * max;
??mid_square = mid * mid;
??min_square = min * min;
??tmp = mid_square + min_square;
??if(equal(mid,min) || equal(max, mid))
??{
???if(equal(mid, min))
???{
????if(mid == max)
?????puts("等邊三角形。");
????else if(equal(max_square, tmp))
?????puts("等腰直角三角形。");
????else if(max_square < tmp)
?????puts("等腰銳角三角形。");
????else
?????puts("等腰鈍角三角形。");
???}
???else
???{
????if(equal(min, mid))
?????puts("等邊三角形。");
????else
?????puts("等腰銳角三角形。");
???}
??}
??else if(equal(max_square, tmp))
???puts("直角三角形。");
??else if(max_square < tmp)
???puts("銳角三角形。");
??else
???puts("鈍角三角形。");
?}
}
int main(void)
{
?char cs, ch;
?do
?{
??input();
??sort();
??judge();
??if(input_err_flag)
??{
???input_err_flag = 0;
???while((cs=getchar())!='/n' && (cs=getchar())!=EOF);
???printf("輸入錯誤,a b c必須大于零,是否新輸入(y/n):");
??}
??else if(judge_err_flag)
??{
???judge_err_flag = 0;
???while((cs=getchar())!='/n' && (cs=getchar())!=EOF);
???printf("組不成三角形,是否重新輸入(y/n):");
??}
??else
??{
???while((cs=getchar())!='/n' && (cs=getchar())!=EOF);
???printf("是否再輸入一組數(shù)據(jù)(y/n):");
??}
??ch = getchar();
?}
?while(ch=='y' || ch=='Y' || ch=='/n');
?puts("Goodbye!");
?return 0;
}
上述內(nèi)容就是小編為大家介紹如何用C語言判斷三角型類型的內(nèi)容,俗話說好記性不如爛筆頭,所以我們在學(xué)習(xí)C語言的時候就要將平日所學(xué)所做的實驗記錄下來,以備回顧。