三角形タイプの判断複雑版コード
1780 ワード
後の判断を簡略化
例えば鈍角三角形(c*c>a*a+b*b)
直角三角形(c*c==a*a+b*b)
鋭角三角形(c*c
3.たんいつしゅつりょく
後で修正しやすい
完全なコードリファレンス:
#include
int main()
{
int a, b, c;
int type;
scanf("%d %d %d", &a, &b, &c);
// abc c
if( c < b ){
int temp;
temp = c;
c = b;
b = temp;
}
if( c < a ){
int temp;
temp = a;
a = c;
c = temp;
}
//
if( c >= a + b){
type = 0; //
goto swtch;
}
else{
type = 1; //
}
//
if( c*c > a*a + b*b ){
type = 2; //
}else if( c*c < a*a + b*b ){
type = 3; //
}else{
type = 4; //
}
if( a == b ){
type += 10; //
if( a == c ){
type = 5; //
}
}
//
if( type > 11 && type < 15 ){
printf("
");
}
swtch: switch( type % 10 ) {
case 0: printf(" "); break;
case 2: printf(" "); break;
case 3: printf(" "); break;
case 4: printf(" "); break;
case 5: printf(" "); break;
}
printf("
");
return 0;
}
最適化:
ここでgoto文はif判定(type!=0)で置き換えることができる
//
if( c >= a + b){
type = 0; //
}
else{
type = 1; //
}
if( type != 0 ){
//
if( c*c > a*a + b*b ){
type = 2; //
}else if( c*c < a*a + b*b ){
type = 3; //
}else{
type = 4; //
}
if( a == b ){
type += 10; //
if( a == c ){
type = 5; //
}
}
}