如何判斷C語言小程序三角型類型
C語言是一個有結構化程序設計、具有變量作用域(variable scope)以及遞歸功能的過程式語言。以下是小編為大家搜索整理的`如何判斷C語言小程序三角型類型,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
第一個判斷三角形的類型,兩個浮點型數據不能直接判斷相等,為了輸入方便一些,自己設置的精度比較低,10^(-3)
複製代碼 代碼如下:
#include
#include
#define EPSINON 1e-3
#define ABS(a) (((a)>0)?(a):(-a)) //?:不支持表達式嵌套
#define ZERO(x) ((x)>-EPSINON && (x)
#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("是否再輸入一組數據(y/n):");
}
ch = getchar();
}
while(ch=='y' || ch=='Y' || ch=='n');
puts("Goodbye!");
return 0;
}
-
c語言—文件的創建與建立
今天要介紹的是有關文件的創建與讀取的語法,事實上,c語言中對於這方面的`已經有相當經典且應用相當廣泛的語法了,但是我今天想講一講關於c++中的相關語法,以下僅供參考!以下是代碼:首先是文件的創建:#include#include#includeusingnamespacestd;intmain(){ofstreamout...
-
為什麼入門首選C語言?
C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。對於大部分程序員,C語言是學習編程的第一門語言,很少有不瞭解C的程序員。那麼為什麼入門首選C語言呢,下面小編為大家介紹一下吧!C...
-
C語言順序結構知識歸納
C語言的順序結構裏面有哪些知識需要學習的呢,下面小編為大家歸納了C語言順序結構知識,歡迎大家閲讀!C語言順序結構知識歸納一、表達式語句、函數調用語句和空語句1.C語言的語句共分五大類:表達式語句、控制語句、函數調用語句、空語句和複合語句。2.表達式語句的...
-
淺談高職C語言課程的教學分析與設計
C語言作為學院網絡技術專業的人門課程,旨在通過鍛鍊學生的邏輯思維,牆養學生在職業崗位中實際應用的能力.目前,該專業的學生畢業後主要從事網站開發和網絡管理等方面的工作,而在這些領域幾乎都以C語言作為應用的開發工具.但從歷年教學實踐來看,教師往往付出的精力多...