C++/정올

정올 ) 반복제어문1-형성평가2 #126번

동르링 2023. 8. 2. 15:12

<해답>

#include <stdio.h>
int main(void)
{
    int x;
    int odd=0,even=0;

    while(1)
    {
        scanf("%d ",&x);

        if (x==0)
         break;
        else if (x%2==0)
         even++;
        else if (x%2!=0)
         odd++;
    }

    printf("odd : %d\n",odd);
    printf("even : %d\n",even);

    return 0;
}

odd와 even의 갯수가 각각 출력되어야 하기 때문에, odd와 even을 0으로 초기화해놓고 for문에서 ++을 이용하여 하나씩 늘려준다. 여기서 odd는 홀수이므로 2로 나누었을때 나머지가 0이 아니어야 하기 때문에 (x%2!=0)을 사용하였고, even은 짝수이므로 나머지가 0이므로 (x%2==0)으로 if문을 사용하여 판단하도록 하였다. 
단순 대입이 아니라 '같다'라는 것을 인식시켜야 하므로 '==' 사용하였고, 같지않을경우엔 '!=' 을 사용하였다.