Parité de somme de vérification de débogage

Débogue le code C++ donné

Vous pouvez interroger un modèle directement et tester les résultats renvoyés lors de l'utilisation de différentes valeurs de paramètre en utilisant la console Cloud ou en appelant directement l'API Vertex AI.

Requête forme libre

Déboguez le code :

    #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);
}

Réponse

Déboguer le code

Le code fourni présente quelques problèmes :

1. Variable non déclarée :

  • La variable sum_of_numbers est utilisée dans la fonction check_sum_parity, mais n'est ni déclarée, ni initialisée. Cela entraîne une erreur de compilation.

2. Message de sortie incorrect :

  • Les messages de sortie sont échangés. Le code affiche "La somme est impaire" lorsque la somme est paire, et inversement.

Voici le code corrigé :


#include <iostream>

using namespace std;

void check_sum_parity(int* arr, int arrayLength) {
int sum_of_numbers = 0; // Declare and 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; // Correct output message
} else {
cout << "Sum is odd." << endl; // Correct output message
}
}

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

Explication des modifications :

  1. Déclaration de variable : nous avons ajouté int sum_of_numbers = 0; au début de la fonction check_sum_parity pour déclarer et initialiser la variable avant de l'utiliser.
  2. Messages de sortie : nous avons échangé les messages de sortie dans les blocs if et else pour nous assurer que le message correct est affiché en fonction de la parité de la somme.
Modèle : gemini-1.5-pro-preview-0409
Température : 1
Nombre maximal de jetons de sortie : 8 192
TopK : 40
TopP : 0,95