输入三角形的三条边,问内否构成一个三角形(不考虑退化三角形,即面积为0的三角形),假如能构成三角形,判断这个三角形的类型(直角三角形、锐角三角形、钝角三角形、等边三角形、等腰三角形等等)。
函数声明:byte triangle_type(int a,int b,int c); //注:C语言中没有byte类型,此处的byte类型代表一个字节,与C语言中的unsigned char类型是对应的,可以通过类型定义语句来定义此byte类型:typedef unsigned char byte;
问题1:如何用byte类型表示不同的三角形类型(包括不是三角形)?
问题2:假如你是测试工程师,你将怎样设置测试用例,来测试该函数?
问题1的解决方案:问题分析:1、一个byte包含8位(2的8次方等于256),完全可以表示所有三角形的类型。2、但是,其中“直角三角形、钝角三角形、锐角三角形”这一类与“等腰三角形、等边三角形、非等腰三角形”这一类有重叠,所以不能采用单纯的某一数值代表直角三角形、另一数值代表等腰三角形这种方法表示三角形类型,应考虑其他更巧妙一点的方法来表示三角形类型。3、考虑到非三角形、直角三角形、锐角三角形、钝角三角形、等腰三角形、等边三角形总共是6类,小于一个byte的bit数8,所以可以用一个bit代表上述六中类型中的一种(此位为1则表示是这种类型,否则表示不是这种类型)(两种类型可以同时出现,例如直角+等腰&