2012-01-20 2 views
1

ご質問があります。質問は: 三角形の任意の2辺の長さの合計は、三角形を形成するセグメントの第3辺の長さより大きくなければなりません。例えば、3つのセグメントのいずれか2つの合計が第3のセグメントよりも大きいので、8,6および12は三角形を形成することができる。セグメント5と15の和がセグメント24声明文に合っている状態

の長さよりも大きくないのでしかし、24、5、及び15が三角形を形成することができないので、私のコードは次のようである:

$aa = $_GET['a']; 
$bb = $_GET['b']; 
$cc = $_GET['c']; 
if(($aa + $bb > $cc) || ($bb + $cc > $aa) || ($aa + $cc > $bb)){ 
    echo"Triangle"; 
} 

else{ 
    echo"Not Triangle"; 
} 

それ実行することができますが、私はそれらの番号をテストします:8,6と12と表示トライアングル。数字の場合:24,5、および15の場合、答えは三角形でもTriangleが表示されます。なぜ誰かが私に言うことができますか? TQ

+0

Btw、それは宿題ですか?その場合は、それに応じてタグを付けます。 – J0HN

答えて

0

これらの3つの条件のすべてが満たされなければならないので、単一ではありません。

if(($aa + $bb > $cc) && ($bb + $cc > $aa) && ($aa + $cc > $bb)){ 

if(($aa + $bb > $cc) || ($bb + $cc > $aa) || ($aa + $cc > $bb)){ 

を交換し、あなたが三角形の2つの短辺の合計の長さがの長さよりも大きくなければならないことを考慮すれば、それは簡単です

0

問題ないはずです最長の側面...だから最短でどれが最長であるかを知るために最初に辺の長さを並べ替えると、 "if"ロジックが簡略化されます

// Put our lengths into an array so that we can manipulate them more esily 
$sideLengths = array($_GET['a'],$_GET['b'],$_GET['c']); 
// Sort the array so that it's shortest to longest 
sort($sideLengths); 
// Test the sum of the two short sides against the longest 
if (($sideLength[0] + $sideLength[1]) > $sideLength[2]) 
    echo"Triangle"; 
} else { 
    echo"Not Triangle"; 
} 
関連する問題