首页 > 编程知识 正文

c语言如何判定是不是三角形,c语言怎么判定三角形

时间:2024-03-25 09:50:11 阅读:333001 作者:GNUQ

本文目录一览:

用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

trianglen");

你打错了

怎样用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);

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。