本文目錄一覽:
- 1、用C語言判斷三角形
- 2、請問c語言判定是三角形的條件是什麼?
- 3、C語言,怎麼編程判斷三角形的形狀?
- 4、關於c語言判斷是否為三角形的問題
- 5、怎樣用C語言判斷三角形類型(等邊,等腰,直角,等腰直角)?
- 6、用c語言判斷三角形
用C語言判斷三角形
#include iostream.h
int main(void)
{
int a,b,c;
cout”請輸入3個參數:”endl;
cinabc;
if (!(a+b=c || a+c=b || b+c=a))
{
if (a==b a==c) cout”等邊三角形”endl;
else if (a==b || a==c || b==c) cout”等腰三角形”endl;
else cout”不等邊三角形”endl;
}
else cout”無法組成三角形”endl;
return(0);
}
請問c語言判定是三角形的條件是什麼?
任意兩邊的和大於第三邊
例如
#include “stdio.h”
int main()
{
double a,b,c;
printf(“請輸入三邊長:”);
scanf(“%lf%lf%lf”,a,b,c)
if(a+bc a+cb b+ca)
printf(“輸入三邊長可以組成一個三角形!\n”);
else
printf(“輸入三邊長不可以組成一個三角形!\n”);
}
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(!(a0) || !(b0) || !(c0))
{
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語言判斷是否為三角形的問題
首先是輸入3個數,即三角形三條邊,要有等於才行
前面3個條件滿足,才能構成三角形;否則不是三角形
然後判斷,是否有滿足直角形的條件;只要有兩個邊得平方等於另一個邊得平方;即使直角三角
形;輸出yes
你把最後兩個語句去掉看看,還有
else
if(c
b+c)printf(“not
a
triangle\n”);
你打錯了
怎樣用C語言判斷三角形類型(等邊,等腰,直角,等腰直角)?
#includestdio.h
main()
{
double a[3],b;
while(1){
scanf(“%lf %lf %lf”,a[0],a[1],a[2]);//輸入三邊
if(a[0]0a[1]0a[2]0){//三邊中任何一邊都得大於0
if(a[0]a[1]){b=a[0];a[0]=a[1];a[1]=b;} //將最大的邊交換到a[0]中
if(a[0]a[2]){b=a[0];a[0]=a[2];a[2]=b;}
if(a[1]+a[2]=a[0]){
printf(“不是三角形\n”);continue;}//兩個短邊之和不大於第三邊,不是三角形
if(((int)(a[1]*a[1])+(int)(a[2]*a[2])==(int)(a[0]*a[0]))(a[0]==a[1]||a[1]==a[2]||a[0]==a[1])){
printf(“等腰直角三角形\n”);continue;}//兩個短邊的平方=長邊的平方就是直角
if((int)(a[1]*a[1])+(int)(a[2]*a[2])==(int)(a[0]*a[0])){
printf(“直角三角形\n”);continue;}
if(a[0]==a[1]a[0]==a[2]){
printf(“等邊三角形\n”);continue;}
if(a[0]==a[1]||a[1]==a[2]||a[0]==a[1]){
printf(“等腰三角形\n”);continue;}
}else
printf(“不是三角形\n”);
}
}
//這裡計算直角三角形時,轉成int在進行比較,是為了降低精度,特別是計算等腰直角三角形,
//根號2,是無限的小數,不降低精度很難能得到的相等關係的。
如圖所示,望採納。。。。。。
用c語言判斷三角形
判斷三角形---拋磚引玉參考資料:
#include stdio.h
#include stdlib.h
void input(int a,int b,int c)
{
printf(“input the a =”);
scanf(“%d”,a);
printf(“\n”);
printf(“input the b =”);
scanf(“%d”,b);
printf(“\n”);
printf(“input the c =”);
scanf(“%d”,c);
printf(“\n”);
}
int panduan(int a,int b,int c)
{
if (a=100 a=1)
{
return 0;
exit(0);
}
if (b=100 b=1)
{
return 0;
exit(0);
}
if (c=100 c=1)
{
return 0;
exit(0);
}
if (ab+c)
if (ba+c)
if (ca+b)
return 4;
else
return 0;
}
void leixing(int i)
{
switch (i)
{
case ‘0’:
printf(“a,b,c不能組成一個三角形!\n”);
case ‘1’:
printf(“a,b,c組成了一個等邊三角形!\n”);
case ‘2’:
printf(“a,b,c組成了一個等腰三角形!\n”);
case ‘3’:
printf(“a,b,c組成了一個直角三角形!\n”);
case ‘4’:
printf(“a,b,c組成一個普通的三角形!\n”);
default:
printf(“a,b,c組成一個普通的三角形!\n”);
}
}
int dengbian(int a,int b,int c)
{
if (a==b)
if (b==c)
return 1;
else
return 0;
}
int dengyao(int a,int b,int c)
{
if (a==b ||b==c||c==a)
return 2;
else
return 0;
}
int zhijiao(int a,int b,int c)
{
if ((a*a)==(b*b)+(c*c))
{
return 3;
exit(0);
}
if ((b*b)==(c*c)+(a*a))
{
return 3;
exit(0);
}
if ((c*c)==(b*b)+(a*a))
{
return 3;
exit(0);
}
else
return 0;
}
int xingzhuang(int a,int b,int c)
{
int temp=0;
temp=dengbian(a,b,c);
if (temp)
{
return temp;
exit(0);
}
temp=dengyao(a,b,c);
if (temp)
{
return temp;
exit(0);
}
temp=zhijiao(a,b,c);
if (temp)
{
return temp;
exit(0);
}
else
return 1;
}
void main()
{
int a,b,c;
int temp;
input(a,b,c);
// printf(“%d%d%d”,a,b,c);
temp=panduan(a,b,c);
// printf(“%d”,temp);
if (temp==1)
{
temp=xingzhuang(a,b,c);
// printf(“%d”,temp);
leixing(temp);
}
else
leixing(temp);
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/237813.html