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 Freeform

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

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

Explication du correctif:

Le code d'origine présentait un problème avec la variable sum_of_numbers. Il était utilisé sans être initialisé, ce qui entraînait un comportement non défini.

La solution est simple: nous initialisons sum_of_numbers à 0 au début de la fonction check_sum_parity. Cela garantit que la variable a une valeur définie avant d'être utilisée dans la boucle.

Voici le détail du code corrigé:

  1. int sum_of_numbers = 0;: cette ligne initialise la variable sum_of_numbers sur 0.
  2. for (int i = 0; i < arrayLength; i++) { sum_of_numbers += arr[i]; }: cette boucle parcourt le tableau et ajoute chaque élément à la variable sum_of_numbers.
  3. if (sum_of_numbers % 2 == 0) { ... } else { ... }: cette instruction conditionnelle vérifie si sum_of_numbers est pair ou impair, puis affiche le message approprié.

Le code calcule désormais correctement la somme des éléments du tableau et détermine si la somme est paire ou impaire.

Modèle : gemini-1.5-flash-001
Température : 1
Nombre maximal de jetons de sortie : 8 192
TopK : 40
TopP : 0,95