見出し画像

プログラミング学習記録【6日目】

昨日朝から21時頃までバイトしていて、帰ってnoteを更新しようとしたのだが、一息ついた間に寝てしまった。
モチベーションが落ちたわけではないのだが、5日目という序盤で連続投稿ができなくなってしまったのは残念ではある。
気を落とさず、今日からまた続けられるように頑張りたい。

1.14.STLの関数

STL(Standard Template Library)関数は、プログラムのまとまった機能をかんたんに使うための関数。

関数名(引数1, 引数2, ...)

というように呼び出す。
関数の計算結果の値のことを返り値、または戻り値という。
配列に関するSTLの関数も存在する。それらを用いる場合、

関数名(配列変数.begin(), 配列変数.end())

という特殊な形式で配列を渡す必要があり、注意が必要。

EX14.三人兄弟の身長差

三人兄弟A,B,Cの身長が入力として与えられるので、この中から最も大きい人と最も小さい人の身長差を出力するプログラムを作る。
配列を用いて比較を行うことにした。

#include <bits/stdc++.h>
using namespace std;
int main() {
   vector<int> vec(3);
   cin >> vec.at(0) >> vec.at(1) >> vec.at(2);
   sort(vec.begin(), vec.end());
   
   cout << vec.at(2) - vec.at(0) << endl;
}

入力を配列として受け取り、これをsortで順番に並べ直して、最大と最小の差を出力してみたのだが、これだとSTLの関数を用いていない(笑)。
一応これで判定を行ってもらった。

画像1

これでも正解は正解っぽいが、どうせならSTLの関数を用いて作ってみたい。1.14で説明されていたmax,minの関数は2つの数字から判定を行う、と書いてあったので、プログラムは次のようにした。

#include <bits/stdc++.h>
using namespace std;
int main() {
   int A, B, C;
   cin >> A >> B >> C;
   int abmax = max(A, B);
   int maximum = max(abmax, C);
   int abmin = min(A, B);
   int minimum = min(abmin, C);
   cout << maximum - minimum << endl;
}

これも結果は次の通り。

画像2

寒くなってきて、ついに我が家も炬燵を解禁してしまった。
魔物が潜んでいるとはどうやら本当のようで、トイレすら我慢するほど動けなくなってしまった。
引きこもりにはあまりに悪魔的なアイテムを召喚してしまったらしい。

この記事が気に入ったらサポートをしてみませんか?