C语言

如何判断三角形类型的c语言小程序

时间:2023-03-29 12:18:59 C语言 我要投稿
  • 相关推荐

如何判断三角形类型的c语言小程序

  引导语;c语言中有很多有趣的小程序,以下是百分网小编分享给大家的如何判断三角形类型的c语言小程序,欢迎阅读!

  #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语言类型转换的方法09-14

C语言的枚举类型知识04-19

C语言的指针类型详解10-17

C语言程序的实现09-27

c语言如何控制硬件10-13

浅谈如何学好C语言10-27

C语言如何输出菱形11-08

C语言中各种类型的指针的概念总结11-24

学习c语言程序设计心得(通用13篇)07-01

嵌入式C语言编程小知识12-20