Time Limit: 0 msec / Memory Limit: 0 KB
キーポイント
- プログラムは上から下へ順番に実行される
cin >> 変数
で入力を受け取ることができる- スペースと改行で区切られて入力される
プログラムの実行順序
基本的にプログラムは上から下へ順番に実行されます。
次のプログラムを見てみて下さい。
#include <bits/stdc++.h> using namespace std; int main() { int name; // nameに10を代入 name = 10; cout << name << endl; // 10 // nameに5を代入 name = 5; cout << name << endl; // 5 }
実行結果
10 5
このプログラムが実行される様子を表したのが次のスライドです。
1回目の出力の時点ではnameに10
が書かれていますが、その後name = 5;
でnameのデータを5
に上書きしているため、2回目の出力では5
が出力されます。
「プログラムが実行される順序」を意識してプログラムを読み書きしましょう。
入力
プログラムの実行時にデータの入力を受け取る方法を見ていきましょう。
「入力機能」を使うことにより、プログラムを書き換えなくても様々な計算を行えるようになります。
入力を受け取るには cin
と>>
を使います。
次のプログラムは、入力として受け取った数値を10倍にして出力するプログラムです。
#include <bits/stdc++.h> using namespace std; int main() { int a; // 変数aで入力を受け取る cin >> a; cout << a * 10 << endl; }
入力
5
実行結果
50
ここではint型の変数a
で入力を受け取っています。
実際に入力を受け取っているのは次の部分です。
cin >> a;
cout
とは>>
の向きが逆になっていることに注意して下さい。
cout << 10; cin >> a;
- 出力は
cout
に<<
でデータを送っている - 入力は
cin
から変数に>>
でデータを送っている
というようなイメージだと覚えておくと良いでしょう。
整数以外のデータの入力
整数以外のデータを受け取りたいときは、そのデータの種類に合わせた型の変数を使います。
#include <bits/stdc++.h> using namespace std; int main() { string text; double d; cin >> text; cin >> d; cout << text << ", " << d << endl; }
入力
Hello 1.5
実行結果
Hello, 1.5
このプログラムが実行される様子を表したのが次のスライドです。
繋げて入力
coutと同じように、cinも>>
を繋げて入力を受け取ることができます。
入力が複数ある場合は、スペースか改行で区切られていれば分解して入力してくれます。
#include <bits/stdc++.h> using namespace std; int main() { int a, b, c; cin >> a >> b >> c; cout << a * b * c << endl; }
入力
2 3 4
実行結果
24
a
に2、b
に3、c
に4が入力されています。
問題
リンク先の問題を解いてください。
AtCoder Beginner Contestの問題
AtCoderではAtCoder Beginner Contest (ABC)というコンテストを定期的に開催しています。
そのコンテストで出題される問題の中には、ここまでで学んだ知識だけで解けるものもあります。
ここではその中からいくつか紹介します。練習問題では物足りない人は解いてみてください。
易しめ
難しめ
「難しめ」の問題はもっとプログラムの知識がつくと簡単になりますが、ここまでで学んだ知識のみで解こうとすると少し工夫が必要になります。