Prüfsummenparität der Fehlerbehebung

Beheben Sie Fehler im angegebenen C++-Code.

Sie können ein Modell direkt abfragen und die zurückgegebenen Ergebnisse testen, wenn Sie verschiedene Parameterwerte mit der Cloud Console oder durch direkten Aufruf der Vertex AI API verwenden.

Freiform-Prompt

Fehler im Code beheben:

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

Antwort

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

Erläuterung der Korrektur:

Im ursprünglichen Code ist ein Problem mit der Variable sum_of_numbers aufgetreten. Sie wurde ohne Initialisierung verwendet, was zu nicht definiertem Verhalten führte.

Die Lösung ist einfach: Wir initialisieren sum_of_numbers auf 0 am Anfang der check_sum_parity-Funktion. Dadurch wird sichergestellt, dass die Variable einen definierten Wert hat, bevor sie in der Schleife verwendet wird.

Hier seht ihr eine Übersicht des korrigierten Codes:

  1. int sum_of_numbers = 0;: Diese Zeile initialisiert die Variable sum_of_numbers auf 0.
  2. for (int i = 0; i < arrayLength; i++) { sum_of_numbers += arr[i]; }: Diese Schleife durchläuft das Array und fügt jedes Element der Variable sum_of_numbers hinzu.
  3. if (sum_of_numbers % 2 == 0) { ... } else { ... }: Diese bedingte Anweisung prüft, ob sum_of_numbers gerade oder ungerade ist, und gibt die entsprechende Nachricht aus.

Jetzt berechnet der Code die Summe der Array-Elemente korrekt und bestimmt, ob die Summe gerade oder ungerade ist.

Modell: gemini-1.5-flash-001
Temperatur: 1
Max. Ausgabetokens: 8.192
TopK: 40
TopP: 0,95