C语言小程序(一)、判断三角型类型
来源:互联网 发布:php双轨直销系统源码 编辑:程序博客网 时间:2024/05/16 11:40
最近回炉重造C语言,陆续写一些比较短的代码,选择其中的一些贴到这里,都是在Linux下的代码,Windows未测试。
第一个判断三角形的类型,两个浮点型数据不能直接判断相等,为了输入方便一些,自己设置的精度比较低,10^(-3)。
#include <stdio.h>#include <stdlib.h>#defineEPSINON1e-3#defineABS(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(!(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);elsemid = 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("等边三角形。");elseputs("等腰锐角三角形。");}}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语言小程序(四)、杨辉三角
- c语言小程序实例(一)
- 打印杨辉三角--C语言小程序
- [C语言基础]一些C语言小程序(一)
- C语言18个经典小程序(一)
- C语言小程序------------数组实现栈功能(一)
- C语言--------------字符串小程序练习(一)
- 50个C语言小程序(一、百钱买百鸡)
- C语言 判断上三角矩阵
- 学C语言时的小程序之一:杨辉三角的一种方法
- C语言 程序 杨辉三角实现
- C语言小程序判断机器大小端存储
- C语言-打印三角型
- 程序猿之---C语言细节16(看了绝对值,编译类型ANSI C和K&R C类型判断,c编译器类型转换bug的细节)
- C语言小程序(三)、判断两个日期之差
- C语言小程序
- C语言小程序
- XML文件格式语法及DTD
- hdu1158 Employment Planning
- C语言几种常见排序算法(一)
- Android基础知识学习——界面转换(完善)
- java易错知识点梳理
- C语言小程序(一)、判断三角型类型
- ios7 beta3 下载
- 高精度
- iOS: NSObject的方法classForKeyedUnarchiver
- java Web知识点整理
- Java学习笔记7 - 基本数据类型
- POJ 1011 Sticks
- java垃圾回收机制
- XML访问技术(1)--C++.