こんにちは、情報系大学生のハル(Blog_IT_haru)です。
今回は、paizaラーニングの、データセット選択メニューの第3回、最大値と最小値についてC言語での解き方を解説します。
サンプルコードも掲載してありますので、勉強の参考にしていただければと思います。
また、私自身も初心者であるため、今後解けない問題が出てきた際は記事の更新が滞るかもしれませんが、ご了承下さい。
すぐコードを見たい方は以下のもくじから、サンプルコードで見ることができます。
問題
問題の閲覧・回答は以下のページで行えます。
問題の引用
以下は、上記ページより引用させていただきました。
自然数A, B, Cが与えられます。(A, B, Cの最大値) - (A, B, Cの最小値)を答えてください。
入力される値
A B C入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。
期待する出力答えの数値を出力してください。
N末尾に改行を入れ、余計な文字、空行を含んではいけません。
条件すべてのテストケースにおいて、以下の条件をみたします。
* A, B, C は 1 以上 100 以下
- 入力例1
30 50 10
- 出力例1
40
- 入力例2
1 1 1
- 出力例2
0
解説
この問題も、STEP: 1,STEP: 2同様、配列を用いて解く問題です。
しかし、STEP: 1、STEP: 2と比べると、一番簡単に感じるかもしれません。
入力される値のA B Cは、配列の要素として考えると簡単です。
※ただ、今回の場合、入力される値が3つと決まっているので、配列を使わなくても、一応は解くことができます。
最大値と最小値の求め方については、私の過去の記事で解説していますので、よろしければ御覧ください。
では、コードを書いていきましょう。
サンプルコード
私のコードは以下のようになります。
まず、前回同様、int型で変数の宣言を行います。
配列の要素数は、問題文より、3つとわかるので、a[3]と宣言します。
今回は、最大値と最小値の差を求めたいので、max=0,min=100としておきます。
※今回私はmax=0と設定していますが、問題文より、1以上100以下なので、max=1でOKです。
次に、scanfを用いて、値を読み取って、変数または配列に格納していきます。
for文で読み取るときは、0からスタートし、0,1,2と3回回るように条件も設定します。
その後、if文を用いて、maxとminを用いて行けばOKです。
最後にprintfを用いて出力すれば完了ですね。
まとめ
いかがでしたか?
前回同様、paizaラーニングのデータセット選択メニューの第3回の解説を行いました。
C言語でpaizaラーニングの問題集の記事を書いている方が中々いなかったので、これからちょくちょく書いていけたらな、と思います。
これは私のアウトプットでもありますし、更に誰かのお役に立てたら幸いです。
※次回は少し遅れると思います。(私がまだ解けていないため)
この記事がいいな、と思ってくれたら、SNSなどで拡散したり、
ブックマークやコメントなどしてくれると励みになります!
更に、読者になってくれたら、お返しに私も読者になります!
また、この記事の内容についてなにかありましたら、
お問い合わせ、コメント、TwitterのDMなどによろしくお願いします。
それでは。