2017-08-03 5 views
2

Ich versuche, PHP zu lernen, indem ich Fragen in hackerrank.com beantworte, aber ich bin auf diesem fest.Die gleichen Ergebnisse sieht falsch in 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); 

?> 

Hier ein Screenshot: [1]

Ist die Frage falsch oder ich habe ich Fehler mache?

+0

Haben Sie was redaktionelle ist zu sehen, die redaktionelle –

+0

tun? – Begum

Antwort

1

+1 für die Verwendung von etwas wie hackerrank/topcoder/etc ... um Ihre Fähigkeiten zu erweitern.

Versuchen Sie das Ersetzen echo '<br>'; mit echo '\n';

ich das Problem zu erraten ist HackerRank im Allgemeinen die Ergebnisse will, da sie Druck auf STDOUT an ein Terminal oder etwas angezeigt werden würde, nicht als HTML gerendert analysiert und angezeigt werden durch einen Browser.

Somit werden die echo '<br>'; wahrscheinlich, was zu etwas, das wie dies ihren Testfall Läufer sieht:

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

aber es, wenn sie von ihrer Website Ihrem Browser Rendering der HTML-Code sieht gezeigt wie:

somevalue1 
somevalue2 
somevalue3 
... 

aufgrund der <br> wird im HTML als Newline ausgewertet. Also selbst wenn das Ergebnis gleich aussieht, ist es nicht, es ist nur das Browser-Rendering, das mit dir schraubt!

Jetzt über Ihre Logik im Allgemeinen bin ich nicht sicher, dass ternäre Aussagen der beste Ansatz sind, aber was Sie haben, sollte gut funktionieren.

1

echo '\n';

Ich reparierte mein Problem durch diese

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)); 
Verwandte Themen