2017-08-03 4 views
2

hackerrank.comで質問に答えることでPHPを習得しようとしていますが、私はこの問題に取り組んでいます。ここで同じ結果がHackerRankで間違って見える

<?php 

function plus_minus($array) { 
    $dimension=count($array); 
    $negative =0; 
    $positive = 0; 
    $zeroes = 0; 
    foreach ($array as $element) { 
     $element>0 ? $positive++ : null; 
     $element<0 ? $negative++ : null; 
     $element==0 ? $zeroes++ : null; 
    } 
    echo number_format($positive/$dimension, 6); 
    echo '<br>'; 
    echo number_format($negative/$dimension,6); 
    echo '<br>'; 
    echo number_format($zeroes/$dimension, 6); 
} 


$handle = fopen ("php://stdin","r"); 
fscanf($handle,"%d",$n); 
$arr_temp = fgets($handle); 
$arr = explode(" ",$arr_temp); 
$arr = array_map('intval', $arr); 

plus_minus($arr); 

?> 

スクリーンショット: [1]

質問が間違っているか、私は間違いを犯すのですか?

+0

を行うことで、私の問題を修正あなたは社説で何社説 –

+0

を見ましたか? – Begum

答えて

1

+1 hackerrank/topcoder/etc ...のようなものを使用してスキルを伸ばしてください。

交換してみてくださいecho '<br>';私は問題を推測している

echo '\n';と、彼らがHTMLとしてレンダリングされていない端末や何かにSTDOUTに印刷を表示することがしたいようHackerRankは、一般的に解析され、表示される結果を望んでいますブラウザによって。

したがって、echo '<br>';は、おそらく彼らのテストケースランナーにこのようなものが得られている:

somevalue1<br>somevalue2<br>somevalue3... 

しかし彼らのウェブサイトで示されたときにHTMLをレンダリングするブラウザは次のようになります。

​​3210 が改行としてHTMLで評価されているために

となりました。したがって、結果が同じに見えるとは思っても、そうではありません。

一般的には、論理については、三項文が最善のアプローチであるとは思えませんが、あなたが得たものはうまくいくはずです。

1

echo '\n';

私はこの

print_r(number_format($positive/$dimension, 6)); 
print_r("\n"); 
print_r(number_format($negative/$dimension,6)); 
print_r("\n"); 
print_r(number_format($zeroes/$dimension, 6)); 
関連する問題