程序要求输入3个整数a、b、c作为三角形的三条边,判断这3个数构成的是一般三角形、等边三角形、等腰三角形,还是无法构成三角形。请用等价类划分法来设计测试此程序的测试用例
时间: 2023-12-02 11:05:27 浏览: 217
好的,根据等价类划分法,我们可以将输入的三个整数分为以下几类:
1. 无法构成三角形:a+b<=c、a+c<=b、b+c<=a
2. 等边三角形:a=b=c
3. 等腰三角形:a=b、b≠c 或者 b=c、a≠c 或者 a=c、b≠c
4. 一般三角形:不属于以上三类情况
根据以上等价类划分,我们可以设计以下测试用例:
1. 无法构成三角形:
a=1, b=2, c=4
a=0, b=0, c=0
a=-1, b=-1, c=-1
2. 等边三角形:
a=5, b=5, c=5
a=10, b=10, c=10
a=100, b=100, c=100
3. 等腰三角形:
a=3, b=3, c=5
a=7, b=5, c=5
a=4, b=5, c=4
4. 一般三角形:
a=3, b=4, c=5
a=6, b=8, c=10
a=7, b=9, c=13
以上测试用例可以覆盖所有的等价类,确保程序的正确性。
相关问题
输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
题目:输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形。如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
解析:根据三角形的性质,三角形的任意两边之和大于第三边。因此,判断是否能构成三角形,只需判断a+b>c、a+c>b、b+c>a是否成立。如果成立,则说明能构成三角形;否则,不能构成三角形。
如果能构成三角形,则继续判断三角形的类型。如果a=b=c,则是等边三角形;如果a=b或者a=c或者b=c,则是等腰三角形;否则,是一般三角形。
输入三个整数a、b、c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形),以及构不成三角形。” 帮我写c语言代码
下面是一个判断三角形类型的 C 语言代码:
```
#include <stdio.h>
int main()
{
int a, b, c;
printf("请输入三角形的三条边:\n");
scanf("%d%d%d", &a, &b, &c);
if (a + b <= c || a + c <= b || b + c <= a) {
printf("不能构成三角形\n");
} else if (a == b && b == c) {
printf("等边三角形\n");
} else if (a == b || b == c || a == c) {
printf("等腰三角形\n");
} else if (a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a) {
printf("直角三角形\n");
} else {
printf("一般三角形\n");
}
return 0;
}
```
代码思路:
1. 输入三角形的三条边 a、b、c。
2. 判断是否能构成三角形,如果不能,输出“不能构成三角形”。
3. 判断是否是等边三角形,如果是,输出“等边三角形”。
4. 判断是否是等腰三角形,如果是,输出“等腰三角形”。
5. 判断是否是直角三角形,如果是,输出“直角三角形”。
6. 如果上述条件都不满足,输出“一般三角形”。
阅读全文