C語言實現三角形型別判斷
阿新 • • 發佈:2019-01-22
/*
* 檔名:三角形型別判斷.c
* 功能描述:輸入三角形三條邊,判斷其型別
* (普通 直角 等邊 等腰)
*/
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a, b, c;
fprintf(stdout, "請輸入任意三角形的三條邊長(正整數):");
/* 獲取並檢查輸入 */
while (1)
{
if (fscanf(stdin, "%d%d%d", &a,&b,&c) != 3 || \
a < 0 || b < 0 || c < 0)
{
fprintf(stderr, "輸入錯誤!請重新輸入:");
while (fgetc(stdin) != '\n'); /* 去掉多餘非法字元 */
continue;
}
else
break;
}
/* 判斷是否可構成三角形 */
/* 任意兩邊之和大於第三邊 */
if (a+b<=c || a+c<=b || b+c<=a)
{
fprintf (stdout, "輸入的邊長無法構成三角形!\n");
exit(0);
}
/* 判斷三角形型別 */
if (a == b || a == c || b == c)
{
if (a==b && b==c && a==c)
{
fprintf(stdout, "輸入的邊長為等邊三角形\n");
}
else
{
fprintf(stdout, "輸入的邊長為等腰三角形\n");
}
}
else if (a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)
{
fprintf(stdout, "輸入的邊長為直角三角形\n");
}
else
{
fprintf(stdout, "輸入的邊長為普通三角形\n");
}
return 0;
}