정올 152 : 배열1 - 형성평가3 질문드립니다!

조회수 429회

10개의 정수를 입력받아 홀수 번째 입력받은 정수의 합과 짝수 번째 입력받은 정수의 합을 출력하는 프로그램을 작성하시오.

위에 문장이 문제이고 제가 코드를 짜 보았습니다.

#include <stdio.h>
int main() {
    int arr[10];
    int i;
    int odd,even=0;
    for(i=0;i<10;i++){
        scanf(" %d",&arr[i]);
    }
    for(i=1;i<=10;i++){
        if(i%2!=0) odd+=arr[i-1];
            else even+=arr[i-1];
    }
    printf("odd : %d\n",odd);
    printf("even : %d\n",even);
    return 0;
}

두번째 for문은 i값이 홀수이면 그 값에서 i-1한 즉, 인덱스에 저장되어 있는 값을 odd값에, 짝수이면 even값에 저장하도록 코드를 짜보았습니다

even변수 부분은 올바르게 출력이 되는데 odd부분이 올바르게 출력되지 않습니다ㅠㅠㅠ

(예를 들어 10 20 25 66 83 7 22 90 1 100을 입력하면 odd부분이 이상하게 출력됩니다)

코딩 처음이래서 어느부분에서 오류가 생겼는지 잘 모르겠습니다 부탁드립니다!!

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • int odd,even=0;가 잘못 되었습니다. odd도 0으로 초기화 해야 합니다. int odd=0, even=0;으로 수정하고 실행해 보세요.

    아래 코드 참고하세요.

    • 코드
    #define _CRT_SECURE_NO_WARNINGS
    
    #include <stdio.h>
    
    int main() {
        int arr[10];
        int i;
        int odd = 0, even = 0;
        for (i = 0; i < 10; i++) {
            scanf(" %d", &arr[i]);
        }
        for (i = 1; i <= 10; i++) {
            if (i % 2 != 0) odd += arr[i - 1];
            else even += arr[i - 1];
        }
        printf("odd : %d\n", odd);
        printf("even : %d\n", even);
        return 0;
    }
    
    • 결과

    이미지

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)