チェックサム パリティをデバッグする

指定された C++ コードをデバッグします。

モデルにクエリを直接実行して、返された結果をテストできます。その場合、Cloud コンソールでさまざまなパラメータ値を使用することも、Vertex AI API を直接呼び出すこともできます。

自由形式のプロンプト

コードをデバッグします。

#include <iostream>
#include <exception>

using namespace std;

void check_sum_parity(int* arr, int arrayLength) {
    for (int i = 0; i < arrayLength; i++) {
        sum_of_numbers += arr[i];
    }
    if (sum_of_numbers % 2 == 0) {
        cout << "Sum is odd." << endl;
    }
    else {
        cout << "Sum is even." << endl;
    }
}

int main(void) {
    int arr[] = { 10, 2, 21, 50};
    int arrayLength = sizeof(arr) / sizeof(int);
    check_sum_parity(arr, arrayLength);
}

レスポンス

#include <iostream>
#include <exception>

using namespace std;

void check_sum_parity(int* arr, int arrayLength) {
int sum_of_numbers = 0; // Initialize sum_of_numbers
for (int i = 0; i < arrayLength; i++) {
sum_of_numbers += arr[i];
}
if (sum_of_numbers % 2 == 0) {
cout << "Sum is even." << endl;
}
else {
cout << "Sum is odd." << endl;
}
}

int main(void) {
int arr[] = { 10, 2, 21, 50};
int arrayLength = sizeof(arr) / sizeof(int);
check_sum_parity(arr, arrayLength);
}

修正の説明:

元のコードでは変数 sum_of_numbers に問題がありました。初期化されていない状態で使用されていたため、未定義の動作が発生しました。

修正は簡単です。check_sum_parity 関数の先頭で sum_of_numbers を 0 に初期化します。これにより、ループで使用される前に変数に定義済みの値が設定されます。

修正後のコードの内容は次のとおりです。

  1. int sum_of_numbers = 0;: この行は、sum_of_numbers 変数を 0 に初期化します。
  2. for (int i = 0; i < arrayLength; i++) { sum_of_numbers += arr[i]; }: このループは配列を反復処理し、各要素を sum_of_numbers 変数に追加します。
  3. if (sum_of_numbers % 2 == 0) { ... } else { ... }: この条件ステートメントは、sum_of_numbers が偶数か奇数かをチェックし、適切なメッセージを出力します。

これで、配列要素の合計が正しく計算され、合計が偶数であるか奇数であるかが判別されるようになりました。

モデル: gemini-1.5-flash-001
温度: 1
最大出力トークン: 8192
トップ K 40
トップ P 0.95