[C]코드업_1065 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝수만 출력하기(설명)

Alal11·2022년 5월 16일
0
post-thumbnail

출처

https://codeup.kr/problem.php?id=1065


문제

세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자.

참고
if(조건)
{ //조건이 참일 때에만 실행되는 구역(코드블록의 시작)
실행1;
실행2;
...
} //코드블록의 끝

의 조건/선택 실행 구조는
주어진 “조건”을 검사해 그 결과가 참인 경우에만 코드블록 안에 작성된 내용들을 순서대로 실행한다.

예시
if(a%2==0)
{
printf(“%d”, a);
}

if(b%2==0)
{
printf(“%d”, b);
}

if(c%2==0)
{
printf(“%d”, c);
}

** a%2==0 은 a%2가 먼저 수행되고 그 결과를 0과 비교한 참/거짓 값을 계산한다.

a%2==0의 의미는 a를 2로 나눈 나머지를 0과 비교한 결과 값(참/거짓)이다.
따라서, if(a%2 == 0) 는 “a가 짝수라면?” 이라는 의미로 해석할 수 있다.


입력

세 정수 a, b, c 가 공백을 두고 입력된다.
0 ~ +2147483647 범위의 정수들이 입력되며 적어도 1개는 짝수이다.


출력

짝수만 순서대로 줄을 바꿔 출력한다.


➡️문제 분석

a % 2 (a를 2로 나눈 나머지)가 0이면 a는 짝수, 0이 아닌 1이면 홀수이다. 이를 이용해 if문으로 a, b, c가 짝수인지 판별하여 참이면 출력한다.


➡️코드(⭕)

#include <stdio.h>

int main(void)
{
	int a, b, c;

	scanf_s("%d %d %d", &a, &b, &c);
	
	if (a % 2 == 0) {
		printf("%d\n", a);
	}
	if (b % 2 == 0) {
		printf("%d\n", b);
	}
	if (c % 2 == 0) {
		printf("%d\n", c);
	}
	return 0;
}

<코드 분석>

if를 연달아 사용해 a, b, c 모두 짝수인지 판별한 다음 참이면 출력한다.
(만약 if, if else, else 순서대로 코드를 짜면, a가 짝수일 때 b, c는 판별해보지 않고 바로 a만 출력되고 프로그램은 종료된다.)


➡️end

else if 를 쓰지않고 if 만으로 코드를 만들 수 있구나 알게 되었다.
if문에서 실행 내용이 printf 한 줄이라 중괄호를 쓰지 않아도 됐지만, 내용이 길어질 경우엔 중괄호를 써서 코드블록을 명확하게 구분해주자.

0개의 댓글