Depura la paridad de suma de verificación

Depura el código de C++ dado.

Puedes consultar un modelo directamente y probar los resultados que se muestran cuando usas valores de parámetros diferentes con la consola de Cloud o con una llamada directa a la API de Vertex AI.

Mensaje Formato libre

Depura el código:

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

Respuesta

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

Explicación de la corrección:

El código original tenía un problema con la variable sum_of_numbers. Se estaba usando sin inicializarse, lo que causaba un comportamiento indefinido.

La corrección es simple: inicializamos sum_of_numbers en 0 al comienzo de la función check_sum_parity. Esto garantiza que la variable tenga un valor definido antes de que se use en el bucle.

A continuación, se muestra un desglose del código corregido:

  1. int sum_of_numbers = 0;: Esta línea inicializa la variable sum_of_numbers en 0.
  2. for (int i = 0; i < arrayLength; i++) { sum_of_numbers += arr[i]; }: Este bucle itera en el arreglo y agrega cada elemento a la variable sum_of_numbers.
  3. if (sum_of_numbers % 2 == 0) { ... } else { ... }: Esta sentencia condicional verifica si sum_of_numbers es par o impar y, luego, imprime el mensaje correspondiente.

Ahora el código calculará correctamente la suma de los elementos del arreglo y determinará si la suma es par o impar.

Modelo: gemini-1.5-flash-001
Temperatura: 1
Cantidad máxima de tokens de salida: 8192
K superior 40
P superior 0.95