F - 1.05.実行順序と入力 Editorial /

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

このプログラムが実行される様子を表したのが次のスライドです。

入力 from APG4b

繋げて入力

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)というコンテストを定期的に開催しています。
そのコンテストで出題される問題の中には、ここまでで学んだ知識だけで解けるものもあります。
ここではその中からいくつか紹介します。練習問題では物足りない人は解いてみてください。

易しめ

難しめ

「難しめ」の問題はもっとプログラムの知識がつくと簡単になりますが、ここまでで学んだ知識のみで解こうとすると少し工夫が必要になります。

前のページ | 次のページ