LoginSignup
0
0

More than 1 year has passed since last update.

APG4bで自分が書いたコード4 EX16~19

Last updated at Posted at 2022-07-19

自分のアカウントです

APG4bで自分が書いたコード3の続き

EX16 - 隣り合う同じ値を探す

EX.cpp
#include <bits/stdc++.h>
using namespace std;

int main() {
    vector<int> data(5);
    for (int i = 0; i < 5; i++) {
        cin >> data.at(i);
    }
    // if (data.at(1) == data.at(2) || data.at(2) == data.at(3) || data.at(3) == data.at(4))
    int y = 0;
    for (int i = 0; i < 4; i)
    {
        if (data.at(i) == data.at(i+=1))
        {
            y=1;
            break;
        }

    }
    if (y == 1)
        cout << "YES";
    else cout << "NO";
    cout << endl;
    // dataの中で隣り合う等しい要素が存在するなら"YES"を出力し、そうでなければ"NO"を出力する
 
}

EX17 - 果物屋さんでお買い物

EX17.cpp
#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int N, S;
  cin >> N >> S;
  vector<int> A(N), P(N);
  for (int i = 0; i < N; i++) {
    cin >> A.at(i);
  }
  for (int i = 0; i < N; i++) {
    cin >> P.at(i);
  }
 int X=0;
  for (int i = 0; i < N; i++) {
    for (int j = 0; j < N; j++) {
   if (A.at(i)+P.at(j)==S){X++;}
 }
  }
cout << X << endl;
 
  // リンゴ・パイナップルをそれぞれ1つずつ購入するとき合計S円になるような買い方が何通りあるか

}

EX18 - ゲーム大会

EX18.cpp
#include <bits/stdc++.h>

using namespace std;

int main() {
    int N, M; //M試合
    cin >> N >> M;
    vector<int> A(M), B(M);
    for (int i = 0; i < M; i++) {
        cin >> A.at(i) >> B.at(i);
    }



    // ここにプログラムを追記


    // (ここで"試合結果の表"の2次元配列を宣言)
    vector<vector<char>> table(N, vector<char>(N));
    for (int i = 0; i < N; i++) {
        for (int j = 0; j <N; j++) {
            table.at(i).at(j) = '-';
        }

    }

  /*  for (int i = 0; i < M; i++) {
        table.at(A.at(i)).at(B.at(i)) = 'o';
        table.at(B.at(i)).at(A.at(i)) = 'x';
    }

 */
     for (int i = 0; i < M; i++) {
        table.at(A.at(i)-1).at(B.at(i)-1) = 'o';
        table.at(B.at(i)-1).at(A.at(i)-1) = 'x';
    }

  
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            cout << table.at(i).at(j);
            if (j == N - 1) { cout << endl; }
            else
            {
                cout << " ";
            }
        }

    }
}

EX19 - 九九の採点

EX19.cpp
#include <bits/stdc++.h>
using namespace std;

// 参照渡しを用いて、呼び出し側の変数の値を変更する

constexpr int size = 9;

void saiten(vector<vector<int>> &A, int& correct_count, int& wrong_count/* 呼び出し側に対応するように引数を書く */) {
    // 呼び出し側のAの各マスを正しい値に修正する
      for (int i = 0; i < 9; i++) {
        for (int j = 0; j < 9; j++) {

            if ((i+1) * (j+1) == A.at(i).at(j))
            {
                correct_count++;
           }
            else {
                wrong_count++;
            }
        A.at(i).at(j)=(i+1)*(j+1) ;
        }
    }
    
    
    // 
    // 
    // 
    // Aのうち、正しい値の書かれたマスの個数を correct_count に入れる
    // Aのうち、誤った値の書かれたマスの個数を wrong_count に入れる




}

// -------------------
// ここから先は変更しない
// -------------------
int main() {
    // A君の回答を受け取る
    vector<vector<int>> A(9, vector<int>(9));
    for (int i = 0; i < 9; i++) {
        for (int j = 0; j < 9; j++) {
            cin >> A.at(i).at(j);
        }
    }

    int correct_count = 0; // ここに正しい値のマスの個数を入れる
    int wrong_count = 0;   // ここに誤った値のマスの個数を入れる

    // A, correct_count, wrong_countを参照渡し
    saiten(A, correct_count, wrong_count);


    // 正しく修正した表を出力
    for (int i = 0; i < 9; i++) {
        for (int j = 0; j < 9; j++) {
            cout << A.at(i).at(j);
            if (j < 8) cout << " ";
            else cout << endl;
        }
    }
    // 正しいマスの個数を出力
    cout << correct_count << endl;
    // 誤っているマスの個数を出力
    cout << wrong_count << endl;
}

EX20.報告書の枚数

未提出
再帰関数全然わからない

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0