Paridade da soma da verificação de depuração

Depurar o código C++ fornecido.

É possível consultar um modelo diretamente e testar os resultados retornados ao usar diferentes valores de parâmetros com o console do Cloud ou ao chamar a API Vertex AI diretamente.

Comando Freeform

Depure o 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);
}

Resposta

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

Explicação sobre a correção:

O código original apresentou um problema com a variável sum_of_numbers. Ele estava sendo usado sem ser inicializado, levando a um comportamento indefinido.

A correção é simples: inicializamos sum_of_numbers como 0 no início da função check_sum_parity. Isso garante que a variável tenha um valor definido antes de ser usada na repetição.

Confira o detalhamento do código corrigido:

  1. int sum_of_numbers = 0;: essa linha inicializa a variável sum_of_numbers como 0.
  2. for (int i = 0; i < arrayLength; i++) { sum_of_numbers += arr[i]; }: essa repetição é executada na matriz e adiciona cada elemento à variável sum_of_numbers.
  3. if (sum_of_numbers % 2 == 0) { ... } else { ... }: essa instrução condicional verifica se o sum_of_numbers é par ou ímpar e mostra a mensagem adequada.

Agora, o código calculará corretamente a soma dos elementos da matriz e determinará se a soma é par ou ímpar.

Modelo: gemini-1.5-flash-001
Temperatura: 1
Máximo de tokens de saída: 8192
TopK: 40
TopP: 0,95