输入条件 | 有效等价类 | 无效等价类 | ||
是三角形的三条边 | 编号 | 内容 | 编号 | 内容 |
( 1 ) ( 2 ) ( 3 ) ( 4 ) ( 5 ) ( 6 ) | a > 0 b > 0 c > 0 a+b > c a+c > b c+b > a | ( 7 ) ( 8 ) ( 9 ) ( 10 ) ( 11 ) ( 12 ) | a <= 0 b < =0 c < =0 a+b <= c a+c <= b c+b <= a | |
是直角形的三条边 | ( 13 ) | a^2+b^2 = c^2 | ( 16 ) | a^2+b^2 c^2 |
( 14 ) | a^2+c^2 = b^2 | ( 17 ) | a^2+c^2 b^2 | |
( 15 ) | b^2+c^2 =a^2 | ( 18 ) | c^2+b^2 a^2 |
测试用例:
( 1 ) 3 4 5 (覆盖 1 、 2 、 3 、 4 、 5 、 6 、 13 、 14 、 15 ) 输出: 1
( 2 ) 0 1 2 (覆盖 7 、 2 、 3 ) 输出 -1
( 3 ) 1 0 2 (覆盖 8 、 2 、 3 ) 输出 -1
( 4 ) 1 2 0 (覆盖 8 、 2 、 3 ) 输出 -1
#include<iostream> using namespace std; int IsTriangle(int a,int b,int c) { int result = -1; if(a>0&&b>0&&c>0) { if((a+b)>c&&(a+c)>b&&(b+c)>a) result = 0; if((a*a+b*b)==(c*c)||(a*a+c*c)==(b*b)||(b*b+c*c)==(a*a)) result = 1; } return result; } int main() { int a,b,c; while(cin>>a>>b>>c) { cout<<IsTriangle(a,b,c)<<endl;} system("pause"); return 0; }
2.#include<stdio.h> void main() { float a,b,c; printf("请输入三角形的三条边"); scanf("%f,%f,%f",a,b,c); if(a<=0||b<=0||c<=0||a+b<=c||a+c<=b||b+c<=a) {printf("-1");} else { if(a*a+b*b=c*c||a*a=b*b+c*c||a*a+c*c=b*b) printf("1"); else printf("0"); } }