三角形タイプの判断複雑版コード

1780 ワード


後の判断を簡略化
  • a,b,cの値
  • を先に交換する.
  • 辺と辺との関係から三角形のタイプ
  • を判断する.
    例えば鈍角三角形(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;				//      
    		}
    	}
        }