三角形的判斷c語言
A. c語言:三角形類型判斷(循環)
按照你的要求編寫的判斷三角形類型的C語言程序如下
#include<stdio.h>
#include<math.h>
floatcal_area(floata,floatb,floatc){
floatp,s;
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
returns;
}
intmain(){
inti,n;
floata,b,c,e=0.001;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%f%f%f",&a,&b,&c);
if(a+b<=c||a+c<=b||b+c<=a){
printf("notriangle ");
}elseif(fabs(a-b)<e&&fabs(b-c)<e){
printf("equilateraltriangle,");
printf("%.1f ",cal_area(a,b,c));
}elseif((fabs(a-b)<e||fabs(b-c)<e||fabs(a-c)<e)&&(fabs(a*a+b*b-c*c)<e||fabs(a*a+c*c-b*b)<e||fabs(b*b+c*c-a*a)<e)){
printf("isoscelesrighttriangle,");
printf("%.1f ",cal_area(a,b,c));
}elseif(fabs(a-b)<e||fabs(b-c)<e||fabs(a-c)<e){
printf("isoscelestriangle,");
printf("%.1f ",cal_area(a,b,c));
}elseif(fabs(a*a+b*b-c*c)<e||fabs(a*a+c*c-b*b)<e||fabs(b*b+c*c-a*a)<e){
printf("righttriangle,");
printf("%.1f ",cal_area(a,b,c));
}else{
printf("generaltriangle,");
printf("%.1f ",cal_area(a,b,c));
}
}
return0;
}
運行結果
3
3.02.06.0
notriangle
3.04.05.0
righttriangle,6.0
1.01.01.414
isoscelesrighttriangle,0.5
B. C語言 判斷三角形的類型
#include<stdio.h>
int
main(){
float
a,b,c,temp;
do{
printf("Please
input
a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
/*對a,b,c從小到大排序*/
if(a>b){temp=a;a=b;b=temp;}
if(a>c){temp=a;a=c;c=temp;}
if(b>c){temp=b;b=c;c=temp;}
if(a+b>c)break;
else
{printf("三角形不成立\n");}
}while(1);
if(a==b&b==c)printf("等邊三角形\n");
else
if(a==b)
if(a*a+b*b==c*c)printf("等腰直角三角形\n");
else
printf("等腰三角形\n");
else
if(a*a+b*b==c*c)printf("直角三角形\n");
else
printf("一般三角形\n");
}
你可以試驗一下,基本滿足要求,只有等腰直角三角形,不好測試,因為肯定有邊是帶根號的
無法輸入根號的數據啊
C. C語言,怎麼編程判斷三角形的形狀
從小到大排序:a<=b<= c
如果a+b>c,是三角形,否則不是三角形[三角形兩邊之和大於第三邊]
三邊相等:等邊三角形
兩邊相等:等腰三角形
a*a+b*b=c*c:直角三角形
D. 怎樣用C語言判斷三角形類型(等邊,等腰,直角,等腰直角)
#include<stdio.h>
main()
{
doublea[3],b;
while(1){
scanf("%lf%lf%lf",&a[0],&a[1],&a[2]);//輸入三邊
if(a[0]>0&&a[1]>0&&a[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("不是三角形
");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("等腰直角三角形
");continue;}//兩個短邊的平方=長邊的平方就是直角
if((int)(a[1]*a[1])+(int)(a[2]*a[2])==(int)(a[0]*a[0])){
printf("直角三角形
");continue;}
if(a[0]==a[1]&&a[0]==a[2]){
printf("等邊三角形
");continue;}
if(a[0]==a[1]||a[1]==a[2]||a[0]==a[1]){
printf("等腰三角形
");continue;}
}else
printf("不是三角形
");
}
}
//這里計算直角三角形時,轉成int在進行比較,是為了降低精度,特別是計算等腰直角三角形,
//根號2,是無限的小數,不降低精度很難能得到的相等關系的。
如圖所示,望採納。。。。。。
E. 用C語言判斷三角形
#include <iostream.h>
int main(void)
{
int a,b,c;
cout<<"請輸入3個參數:"<<endl;
cin>>a>>b>>c;
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);
}
F. 用c語言判斷三角形
判斷三角形---拋磚引玉參考資料:http://tieba..com/p/482306039
#include<stdio.h>
#include<stdlib.h>
voidinput(int&a,int&b,int&c)
{
printf("inputthea=");
scanf("%d",&a);
printf(" ");
printf("inputtheb=");
scanf("%d",&b);
printf(" ");
printf("inputthec=");
scanf("%d",&c);
printf(" ");
}
intpanan(inta,intb,intc)
{
if(a>=100&&a<=1)
{
return0;
exit(0);
}
if(b>=100&&b<=1)
{
return0;
exit(0);
}
if(c>=100&&c<=1)
{
return0;
exit(0);
}
if(a<b+c)
if(b<a+c)
if(c<a+b)
return4;
else
return0;
}
voidleixing(inti)
{
switch(i)
{
case'0':
printf("a,b,c不能組成一個三角形! ");
case'1':
printf("a,b,c組成了一個等邊三角形! ");
case'2':
printf("a,b,c組成了一個等腰三角形! ");
case'3':
printf("a,b,c組成了一個直角三角形! ");
case'4':
printf("a,b,c組成一個普通的三角形! ");
default:
printf("a,b,c組成一個普通的三角形! ");
}
}
intdengbian(inta,intb,intc)
{
if(a==b)
if(b==c)
return1;
else
return0;
}
intdengyao(inta,intb,intc)
{
if(a==b||b==c||c==a)
return2;
else
return0;
}
intjiao(inta,intb,intc)
{
if((a*a)==(b*b)+(c*c))
{
return3;
exit(0);
}
if((b*b)==(c*c)+(a*a))
{
return3;
exit(0);
}
if((c*c)==(b*b)+(a*a))
{
return3;
exit(0);
}
else
return0;
}
intxingzhuang(inta,intb,intc)
{
inttemp=0;
temp=dengbian(a,b,c);
if(temp)
{
returntemp;
exit(0);
}
temp=dengyao(a,b,c);
if(temp)
{
returntemp;
exit(0);
}
temp=jiao(a,b,c);
if(temp)
{
returntemp;
exit(0);
}
else
return1;
}
voidmain()
{
inta,b,c;
inttemp;
input(a,b,c);
//printf("%d%d%d",a,b,c);
temp=panan(a,b,c);
//printf("%d",temp);
if(temp==1)
{
temp=xingzhuang(a,b,c);
//printf("%d",temp);
leixing(temp);
}
else
leixing(temp);
}
G. 關於c語言判斷是否為三角形的問題
首先是輸入3個數,即三角形三條邊,要有等於才行
前面3個條件滿足,才能構成三角形;否則不是三角形
然後判斷,是否有滿足直角形的條件;只要有兩個邊得平方等於另一個邊得平方;即使直角三角
形;輸出yes
你把最後兩個語句去掉看看,還有
else
if(c
>
b+c)printf("not
a
triangle\n");
你打錯了
H. c語言判斷三角形
#include <stdio.h>
int main()
{
int a,b,c;
printf("輸入三角形的三條邊: ");
scanf("%d%d%d",&a,&b,&c);
if(a+b>c && a+c>b && b+c>a)
printf("三角形的周長為: %d\n",a+b+c);
else
printf("No\n");
return 0;
}示例運行結果:
輸入三角形的三條邊:
3
4
5
三角形的周長為:
12
輸入三角形的三條邊:
1
5
6
No
I. c語言判斷三角形形狀
你對r賦值的時候用了兩個等於號「==」,賦值用一個等於號,判斷 的時候採用兩個!
而且輸出語句應該放在第一個if外面,應該就這兩個問題,代碼如下:
#include <stdio.h>
int main(){
int a, b, c, r;
printf("Please input three integers:\n");
scanf("%d%d%d",&a,&b,&c);
if(a == b ==c) r = 3;
else{
if(a + b > c && a - b < c){
if(b + c > a && b - c < a){
if(a + c > b && a - c < b){
if(a * a == b * b + c * c || b * b == a * a +c * c || c * c == a * a + b * b)
r = 1;
else if((a == b && a != c) || (b == c && a != b )|| (a ==c && b != a))
r = 2;
else
r = 0;
}
else
r = -1;
}
else
r = -1;
}
else
r =-1;
}
if(r == -1)
printf("Tt's not an integer.");
else if(r == 0)
printf("It's an scalenous triangle.");
else if(r == 1)
printf("It's an right-angeld triangle.");
else if(r == 2)
printf("It's an isosceles triangle.");
else if(r == 3)
printf("It's an equilateral triangle.");
return 0;
}