디버그 검사 합계 패리티

지정된 C++ 코드를 디버깅합니다.

모델을 직접 쿼리하고 Cloud 콘솔에서 다른 매개변수 값을 사용하거나 Vertex AI API를 직접 호출하여 반환된 결과를 테스트할 수 있습니다.

자유 형식 프롬프트

코드를 디버깅합니다.

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

응답

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

해결 방법 설명:

원래 코드에 sum_of_numbers 변수에 문제가 있었습니다. 초기화되지 않고 사용되어 정의되지 않은 동작이 발생했습니다.

해결 방법은 간단합니다. check_sum_parity 함수 시작 부분에서 sum_of_numbers를 0으로 초기화합니다. 이렇게 하면 변수가 루프에서 사용되기 전에 정의된 값을 갖게 됩니다.

수정된 코드의 세부정보는 다음과 같습니다.

  1. int sum_of_numbers = 0;: 이 줄은 sum_of_numbers 변수를 0으로 초기화합니다.
  2. for (int i = 0; i < arrayLength; i++) { sum_of_numbers += arr[i]; }: 이 루프는 배열을 반복하고 각 요소를 sum_of_numbers 변수에 추가합니다.
  3. if (sum_of_numbers % 2 == 0) { ... } else { ... }: 이 조건문은 sum_of_numbers이 짝수인지 홀수인지 확인하고 적절한 메시지를 출력합니다.

이제 코드가 배열 요소의 합계를 올바르게 계산하고 합계가 짝수인지 홀수인지 확인합니다.

모델: gemini-1.5-flash-001
강도: 1
최대 출력 토큰: 8192
최상위 K: 40
최상위 P: 0.95