Php 无法解释的回显函数格式

Php 无法解释的回显函数格式,php,Php,我有一个程序,用于计算客户仓库中两个供应商的最短路径: $_fp = fopen("php://stdin", "r"); $tcase = fgets($_fp); for ($a0 = 0; $a0 < $tcase; $a0++) { $count = fgets($_fp); $array = explode(' ', fgets($_fp)); $max_ending_here = 0; $max_so_far = 0;

我有一个程序,用于计算客户仓库中两个供应商的最短路径:

$_fp = fopen("php://stdin", "r");
$tcase = fgets($_fp);

for ($a0 = 0; $a0 < $tcase; $a0++)
{            
    $count = fgets($_fp);
    $array = explode(' ', fgets($_fp));
    $max_ending_here = 0;
    $max_so_far = 0;
    $all_positives = 0;

    for($i=0; $i < count($array); $i++)
    {

        $x = $array[$i];
        $max_ending_here = max(0, $max_ending_here + $x);
        $max_so_far = max($max_so_far, $max_ending_here);


        if ($array[$i] >= 0) {
            $all_positives = $all_positives + $array[$i];
        }
    }

    if ($max_so_far > 0) {
        echo $max_so_far . ' ' . $all_positives . "\n";
    } else {
        echo $array[0] . ' ' . $array[0] . "\n";
    }
}
?>

问题是2-10,是否有某种前所未闻的线路限制器需要增加

除非达到EOF,否则fgets将返回包含换行符的字符串。我怀疑这是您的问题,因为您从未将其转换为整数,也没有删除换行符。以下任一项都可以为您解决此问题:

  • 更改“
    $array[0]”$数组[0]。“\n”

    ((int)$array[0])。”$数组[0]。“\n”

  • 更改
    $array=explode(“”,fgets($\u fp))
    $array=explode(“”,trim(fgets($\u fp))


  • 除非达到EOF,否则fgets将返回包含换行符的字符串。我怀疑这是您的问题,因为您从未将其转换为整数,也没有删除换行符。以下任一项都可以为您解决此问题:

  • 更改“
    $array[0]”$数组[0]。“\n”

    ((int)$array[0])。”$数组[0]。“\n”

  • 更改
    $array=explode(“”,fgets($\u fp))
    $array=explode(“”,trim(fgets($\u fp))


  • $array[0]
    中,字符串末尾似乎有一个换行符(
    \n

    当需要打印
    -10
    时,
    $array[0]
    中有
    -10\n

    请尝试更换

    $array = explode(' ', fgets($_fp));
    


    删除字符串中的空格、换行符等。

    $array[0]
    中,字符串末尾似乎有一个换行符(
    \n

    当需要打印
    -10
    时,
    $array[0]
    中有
    -10\n

    请尝试更换

    $array = explode(' ', fgets($_fp));
    


    删除字符串中的空格、换行符等。

    如果没有css上的信息,将很难确定问题所在。。。当然,如果您使用html显示结果,这不是CLI输出,如果没有css上的信息,将很难确定问题是什么。。。当然,如果您使用html显示结果,那么这不是CLI输出
    $array = explode(' ', fgets($_fp));
    $array = array_map('trim', $array);