【特定の文字で区切り 1 行で出力】STEP: 5 半角スペースとバーティカルライン区切りで 10 個出力 (paizaランク D 相当) – PHP編【標準出力メニュー】
【標準出力メニュー】 > 【特定の文字で区切り 1 行で出力】STEP: 5 半角スペースとバーティカルライン区切りで 10 個出力 (paizaランク D 相当)
※リンク先へ移動する為には「paiza」へのログインが必要です。
解答例
|
1 2 3 4 5 6 7 8 |
<?php for($i = 0;$i < 10;$i++){ echo trim(fgets(STDIN)); if($i != 9){ echo " | "; } } ?> |

いつも拝見させていただいてます。YKと申します。
本記事のpaizaの問題についてご質問よろしいでしょうか。
同問題を以下回答したのですがテストケース10のみ不正解になり、なぜなのか見当つかずコメントさせて頂きました。もしお時間ございましたらお手数ですがご教授よろしいでしょうか。よろしくお願いいたします。
***回答***
<?php
while($input = fgets(STDIN)){
$array[] = trim($input);
}
$count = count($array);
for($i = 0;$i < $count;$i++){
echo $array[$i];
if($i
***********
初めまして。コメントの確認が遅れてしまい申し訳ありません。
私も明確な解説はできないのでご期待に添えることはできませんが、どうやらテストケース10のみが不正解になるは、10個目の「 trim($input);」で取り込む数値が「0」であることが原因のようですね。「while」と「 trim($input);」で取り込む場合、どうやら取り込む最後の行が0である場合、その箇所だけ取り込めないようですね。他のテストケースの最後の行だけ0に変えてみると、最後の行(0)だけ取り込めませんでした。