白盒测试
从键盘上输入三个整数,这三个数值表示三角形三条边的长度。然后,输出信息,以表明这个三角形是等腰、等边或是一般三角形,或不能构成三角形。
1)请画出上述处理逻辑的流程图;
2)请用白盒测试法,给出测试用例以及覆盖的路径。
(1)流程图:![在这里插入图片描述](https://img-blog.csdnimg.cn/8146f3064b324c64abe7353be5736637.png#pic_center)
(2)测试用例及路径覆盖:
用例1:a0=1, a1=2, a2=4
1->2->11->12
用例2:a0=3, a1=4, a2 =5
1->2->3->4->5
用例3:a0=3, a1=3, a2 =5
1>2->3->6->9->10
用例4:a0=3, a1=3, a2 =3
1>2->3->6->7->8
(3)实现代码
#include <stdio.h>
#include <math.h>
void swap(int array[], int i, int j);
void BubbleSortSmallToBig(int array[], int len);
int main()
{
int a[3];
int i,j;
for(i = 0;i < 3;i++)
{
scanf("%d",&a[i]);
}
BubbleSortSmallToBig(a,3);
// for(i = 0;i < 3;i++)
// {
// printf("%d ",a[i]);
// }
if(a[0] + a[1] > a[2]){
if(a[0]==a[1]||a[0]==a[2]||a[1]==a[2]){
if(a[0] == a[1]&&a[0]==a[2]){
printf("等边三角形");
}
else{
printf("等腰三角形");
}
}else{
printf("一般三角形");
}
}else{
printf("不能构成三角形");
}
}
//数组内元素交换
void swap(int array[], int i, int j)
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
//冒泡排序:从小到大排序
void BubbleSortSmallToBig(int array[], int len)
{
int i = 0;
int j = 0;
int temp=0;
for(i = 0; i < len; i++)
{
for(j = len-1; j > i; j--)
{
if( array[j] < array[j-1] )
{
swap(array, j, j-1);
}
}
}
}