質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1091閲覧

paiza スキルチェックについて

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/10/19 09:38

転職活動をしています。
その中でpaizaスキルチェックでランクBを目指すことになったのですが、
https://paiza.jp/learning/multiplication
こちらなのですが、

<?php $a = 2; $b = 3; $c = $a * $b; echo $c; ?>

とだけ入力しました。
条件に

aとbを掛け算した数値を出力して下さい。 最後は改行し、余計な文字、空行を含んではいけません。

と書かれているのですが、
これが出来ていないから点数がつかないのでしょうか。
含めて使ったことがあるかた、ご教示ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Paizaの問題は標準入力から入力させるから癖があるんだよねぇ…
課題の手伝いにならない程度にアドバイスするよ!


値取得・出力サンプルコード - Paiza

PHP

<?php $input_lines = trim(fgets(STDIN)); for ( $i = 0; $i < $input_lines; $i++) { $s = trim(fgets(STDIN)); $s = str_replace(array("\r\n","\r","\n"), '', $s); $s = explode(",", $s); echo "hello = ".$s[0]." , world = ".$s[1]."\n"; } ?>
(字下げが狂ってるけど私のせいじゃないよ! Paizaの担当者に伝えてあげて!) このサンプルコードをまずベタッと貼り付けて、それを修正してね。 標準入力に入ってきたデータは`fgets(STDIN)`というおまじないで取得出来るみたいだね。 for文で何度も`fgets(STDIN)`を実行している事から、1行分の入力しか取得できなさそうで、何度も実行する必要がありそうだけれども… また、標準入力は全て`文字列`として入ってくるから、数値を入力しても`"12"`というString型になる。 凝った計算をすると計算結果が狂いそうだから要注意だね。 ヒントとしてはこんなもんかな。 提出前動作確認ボタンで動きはあれこれチェック出来るから、 よくわからないなら、片っ端から変数に代入して、echoやらvar_dumpやらで表示しまくって慣れよう。 --- 後、PHPはファイル末尾の`?>`は不要。 Paizaの問題はHTMLとPHPブロックを行ったり来たりする要件とかないから、 Paizaの問題で書いたソースコードは常に`?>`を省略するくらいでいいね。 [PHPタグ - PHPマニュアル](http://php.net/manual/ja/language.basic-syntax.phptags.php) > ファイル全体が純粋な PHP コードである場合は、ファイルの最後の終了タグは省略するのがおすすめです。 終了タグの後に余分な空白や改行があると、予期せぬ挙動を引き起こす場合があるからです。 余分な空白や改行のせいで PHP が出力バッファリングを開始し、その時点の内容を意図せず出力してしまうことになります。 --- こんなところかな? よいPaizaライフを!

投稿2017/10/19 15:20

編集2017/10/20 02:45
miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/20 03:11

ありがとうございます。 教えていただいたことを元に <?php $input_lines = fgets(STDIN); echo $input_lines; としたところ(終タグ略)、$input_linesに入った数が2であることがわかったので、 $ans($input_lines*3)というものを作りました。 <?php $input_lines = fgets(STDIN); $ans = $input_lines *3; echo $ans; として、計算結果がSuccessしたのに点数がつきません・・・。 何が足りないのでしょうか。
miyabi-sun

2017/10/20 03:18

そりゃ動かんわ。 `$ans = $input_lines *3;` これって入力値を3倍するだけでしょ? 例1は動くけど、例2は0と99の掛け算だよね。 まぁ、0の3倍も0だから一応例1と例2は動作するけど、採点は他のいろんな値でテストされるから2個目の入力値が別のものになった瞬間ダメになる。 サンプルコードをよく見て、1行目だけじゃなくて2行目の入力値もよく見て答えを作ろう。 これ以上は流石に答えられないから頑張って。
退会済みユーザー

退会済みユーザー

2017/10/20 03:26

ありがとうございます!今改めて標準入力の事を調べていて、paizaの動画に戻ってきてそれを見ていました。それを見たらやり方(答え)がまるまる出ていました・・・申し訳ないです。 改めてやってみます、ありがとうございました。
guest

0

これが出来ていないから点数がつかないのでしょうか。

そのとおりです。「書いてある条件」と「プログラムの出力」をよく比較してみてください。

職業的にプログラミングをするのなら、自分で解決する力が重要となります。

投稿2017/10/19 10:02

編集2017/10/19 10:05
maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/19 11:33

ありがとうございます。 自分で改めてローカルサーバーで出力をしたのですが、結果は求められた6にできていました。 (ブラウザでの確認も6しかでていないので余計なことはしていません。) 何ができていないのか、ご指摘ください。
maisumakun

2017/10/19 11:38

「最後は改行し」ていますか?
退会済みユーザー

退会済みユーザー

2017/10/19 11:48

その最後、というのは?>のあとではないのでしょうか? echo文のあとにも改行を入れたり、brを入れてみたりしたのですが全部だめでした。
maisumakun

2017/10/19 12:07

自分も大きく見落としていましたが、上の方に「入力は以下のフォーマットで与えられます。」とあります。 つまり、この入力に対して計算を行う必要があります。
退会済みユーザー

退会済みユーザー

2017/10/19 12:16

申し訳ないです、その文は一応見ていたのですが初めて見るもので意味がわかりませんでした・・・。どういう事なのでしょうか。
退会済みユーザー

退会済みユーザー

2017/10/19 12:36

ありがとうございます。 サンプルも一応見てはいたのですが、どちらにしても標準入力が理解できていないです。 これからもう少し調べて明日改めてこちらに書き込んでみます。
scsi

2017/10/19 14:08

その前に規約を確認しましょう。こんな所で聞いてはいけないはずですよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問