C语言小程序如何判断三角型类型
2023-06-13 09:15:03 时间
#include<stdio.h>
#include<stdlib.h>
#define EPSINON 1e-3
#define ABS(a) (((a)>0)?(a):(-a))//?:不支持表达式嵌套
#defineZERO(x) ((x)>-EPSINON&&(x)<EPSINON)
#defineMAX(a,b) (((a)>(b))?(a):(b))
#defineMIN(a,b) (((a)<(b))?(a):(b))
floata,b,c;
floatmax,mid,min;
charinput_err_flag=0;
charjudge_err_flag=0;
intequal(floata,floatb)
{
floattmp;
tmp=a-b;
tmp=ZERO(ABS(tmp));
returntmp;
}
voidinput(void)
{
a=b=c=0;
printf("输入三条边的值:");
scanf("%f%f%f",&a,&b,&c);
if(!(a>0)||!(b>0)||!(c>0))
{
input_err_flag=1;
}
}
voidsort(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);
}
voidjudge(void)
{
floatmax_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("等边三角形。");
elseif(equal(max_square,tmp))
puts("等腰直角三角形。");
elseif(max_square<tmp)
puts("等腰锐角三角形。");
else
puts("等腰钝角三角形。");
}
else
{
if(equal(min,mid))
puts("等边三角形。");
else
puts("等腰锐角三角形。");
}
}
elseif(equal(max_square,tmp))
puts("直角三角形。");
elseif(max_square<tmp)
puts("锐角三角形。");
else
puts("钝角三角形。");
}
}
intmain(void)
{
charcs,ch;
do
{
input();
sort();
judge();
if(input_err_flag)
{
input_err_flag=0;
while((cs=getchar())!="\n"&&(cs=getchar())!=EOF);
printf("输入错误,abc必须大于零,是否新输入(y/n):");
}
elseif(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!");
return0;
}
相关文章
- C语言 | 编写一个简单的定时关机程序「建议收藏」
- C语言函数知识点【C语言学习笔记】
- C语言编写一个程序,输入10个整数,统计并输出其中正数,负数和零的个数。
- 抽丝剥茧C语言(高阶)程序环境和预处理
- 初识C语言必备经典程序(1)
- 经常面试到的10个经典的C语言小程序详解编程语言
- Linux C语言程序文件大小优化(linuxc文件大小)
- fread和fwrite函数,C语言fread和fwrite函数详解
- C语言求最大公约数(详解版)
- 下编写程序Linux下开发程序的挑战:使用C语言(can在linux)
- 数据库C语言实现快速连接SQL Server数据库(c链接sqlserver)
- Linux下C语言编程入门
- Linux下的C语言程序编写及CGI脚本开发(linuxccgi)
- Linux下C语言程序的执行步骤(linux执行c文件)
- Linux之下编写C语言程序的试验记(linux c语言试题)
- Linux下学习C语言的实战体验(linux c语言小程序)
- Linux C语言中实现延时程序的方法(linux c 延时)
- Linux下运行C语言程序的终极指南(linux中运行c程序)
- C语言MySQL结合开发攻克程序化之路(c mysql 程序)
- MySQL中使用C语言编写查询方法实现数据检索(c mysql查询方法)
- C语言连接Oracle数据库视图编程实践(c 连oracle视图)
- 使用C语言实现Oracle数据库连接(c oracle连接语句)
- 解析C语言中位字段内存分配的问题
- C语言小程序如何判断两个日期之差
- C语言堆栈入门指南