プログラミング入門 5. 配列

この記事は、下記プログラミング入門資料の一部です。

kenkoooo.hatenablog.com

配列とは

整数の入れ物を1個作るときは

int a;

としました。

2個作るときは

int a;
int b;

のようにしました。

このように入れ物を複数個作る場面では、その数だけ書けば良いのですが、個数が100000個とかになってくると面倒になります。

そこで整数の入れ物を一発で100000個つくる方法を考えます。

int a[100000];

こうすることで、整数の入れ物が100000個出来ました。これを「配列」と呼びます。

この入れ物には、前からa[0]、a[1]、a[2]、 ... 、a[99999]と名前がついています。

注意しなければならないのは、このナンバリングが0から始まっていることです。100個の配列を作ると、a[0]からa[99]までの100個の入れ物が出来ます。

練習問題

abc027.contest.atcoder.jp

練習問題の解説

整数が3つ与えられるので、3つ入る配列をつくり、入力をそれぞれa[0]、a[1]、a[2]に入れておきましょう。

「a[0]とa[1]が同じならa[2]を出力、そうでない場合、a[1]とa[2]が同じならa[0]を出力、それでもない場合はa[1]を出力」というプログラムを作成します。

#include <iostream>
using namespace std;
int main(void){
    // Here your code !
    
    //整数の入れ物を3個つくる
    int a[3];
    
    //a[0]に入力を入れる
    cin >> a[0];
    
    //a[1]に入力を入れる
    cin >> a[1];
    
    //a[1]に入力を入れる
    cin >> a[2];
    
    //a[0]とa[1]が同じならa[2]を出力、そうでない場合、a[1]とa[2]が同じならa[0]を出力、それでもない場合はa[1]を出力
    if(a[0] == a[1]){
        cout << a[2] <<endl;
    } else if(a[1] == a[2]){
        cout << a[0] <<endl;
    }else{
        cout << a[1] <<endl;
    }

}

練習問題2

abc017.contest.atcoder.jp

練習問題2の解説

3つ入る配列sとeを作って、入力を受け取りましょう。

各sとeについて、s*e/10が得点として加算されます。

解答例は以下の通り。

#include <iostream>
using namespace std;
int main(void){
    // Here your code !
    
    //3つ配列を作る(配点用)
    int s[3];
    
    //3つ配列を作る(評価用)
    int e[3];
    
    //入力を受け取りまくる
    cin >> s[0];
    cin >> e[0];
    
    cin >> s[1];
    cin >> e[1];
    
    cin >> s[2];
    cin >> e[2];
    
    //答を入れるためにanswerをつくる。
    int answer;
    
    //最初は0を入れておく。
    answer = 0;
    
    //計算結果を答に加えていく
    answer = answer + s[0] * e[0] / 10;
    answer = answer + s[1] * e[1] / 10;
    answer = answer + s[2] * e[2] / 10;
    
    //答えを出力する
    cout << answer << endl;

}