兄貴の伝説 - hatena edition -

ソフトウェア職人を目指してます

5.2 線形検索

まずはそのまま書いてみます。内側ループを抜ける条件が微妙ですが、関数化するのを忘れていたためです。もっと丁寧にやらないといけませんね。

#include <iostream>
#include <array>

using namespace std;

static void inputArray(int A[], int num) {
  for (int i = 0; i < num; i++) {
    cin >> A[i]; 
  }
}

int main() {
  array<int, 10000> N;
  array<int, 500> Q;
  int s, t;

  cin >> s;
  inputArray(&N[0], s);

  cin >> t;
  inputArray(&Q[0], t);

  int found = 0;
  for (int i = 0; i < t; i++) {
    for (int j = 0; j < s; j++) {
      if (N[j] == Q[i]) {
        found++; 
        // exit loop
        j = N.size();
      }
    } 
  }
  cout << found << endl;  

  return 0;
}