본문 바로가기
코딩 이야기/C언어

선택제어문1

by 쭌's story 2022. 4. 14.

쭌's story입니다.

 

 

출력문과 입력문에 이어서 배워볼 C언어 기본 문법은 선택제어문입니다.

 

일상 생활을 둘러보면 만 20세 이상, 만 40세 이하처럼 특정 연령층에 해당되는 사람들을 물어보거나

 

성별에 따라서 나누어 주는 물건이 다른 경우들을 쉽게 찾아볼 수 있습니다.

 

2년 넘게 우리를 괴롭히고 있는 코로나19만 살펴보아도 만 65세 이상, 특이 질환자 등에게

 

코로나19 백신 우선 접종 혜택을 주고 있습니다.

 

이러한 것들을 코딩을 통하여 나타내고자 한다면 선택제어문을 반드시 사용해야 합니다.

 

선택제어문은 풀어볼 기본 문제가 많아서 총 3단계로 진행할 예정입니다.

 

선택제어문의 기본은 if문입니다.

 

if는 다들 알고 있는 것처럼 '만약에...'라는 뜻을 가지고 있습니다.

 

기본 사용법은 다음과 같습니다.

 

선택제어문

 

예를 들어 남자인 경우에 man을 출력하고 싶다면 이렇게 소스 코드를 완성할 수 있습니다.

 

if(남자){
	printf("man");
}

 

if문을 활용한 첫 번째 문제를 풀어봅시다.

 

 

10보다 작은 수

10보다 작은 수가 입력되면 small 을 출력, 10이상이면 아무것도 출력하지 마시오.

codeup.kr

풀이 전략

1. 자연수 하나를 입력 받는다.
2. if문으로 입력 받은 자연수가 10미만인지 물어본다.
  - 10미만이면 small을 출력한다.

Tip. if(조건)에 해당되는 경우에 실행할 명령이 하나 밖에 없다면 {  } (중괄호)를 사용하지 않아도 된다.
#include <stdio.h>

int main()
{
    int a;

    scanf("%d",&a);

    if(a<10)    printf("small");

    return 0;
}

 

두 번째로 if - else 문을 배워보겠습니다. else는 '그 밖에' 라는 뜻을 가지고 있습니다. 

 

if의 조건에 해당되지 않는 모든 경우는 else에 해당이 됩니다.

 

 

if - else문과 관련된 문제를 풀어봅시다.

 

 

10보다 작은 수 (else 버전)

10보다 작은 정수가 입력되면 small 을 출력, 그 이상의 수가 입력되면 big 을 출력하시오.

codeup.kr

 

풀이 전략

1. 정수 하나를 입력 받는다.
2. if문으로 입력 받은 정수가 10미만이면 small을 출력한다.
3. if에 해당되지 않으면 big을 출력한다.
#include <stdio.h>

int main()
{
    int a;

    scanf("%d",&a);

    if(a<10)    printf("small");
    else        printf("big");

    return 0;
}

 

세 번째로 if - else if - else 문을 배워보겠습니다. 

 

if - else if - else 문에서는 가장 먼저 if 에 해당되는지 물어봅니다. 다음으로 if에 해당되지 않는 경우들에 대해서 else if에 해당되는지 물어봅니다. if와 else if에 해당되지 않는 경우들은 else로 가게 됩니다. 이 때의 if와 else if 들은 필터에 해당된다고 생각하면 이해가 쉽습니다. 확장해 나가면 else if 의 갯수들을 늘려서 여러 가지 경우들을 만들 수 있습니다.

 

 

관련된 문제를 풀어봅시다.

 

 

두 수의 대소 비교

두 정수가 입력된다.  두 정수의 크기를 비교하여 왼쪽 수가 크면 > 를 출력, 오른쪽 수가 크면 < 를 출력, 같으면 = 을 출력하시오.

codeup.kr

 

풀이 전략

1. 정수 a, b를 입력 받는다.
2. if(a > b) 이면 > 출력
3. if(a < b) 이면 < 출력
4. if(a == b) 이면 = 출력

if를 3개 사용한 방법도 ok!
if - else if - else 를 사용한 방법도 ok!

Tip1. a와 b가 같은지 물어보려면 조건에 == 을 사용해야 한다.  
Tip2. if(a=b)의 뜻은 b의 값을 a에 대입하고, 그 때의 a값이 0이 아닌지 물어보는 if문이 된다.
#include <stdio.h>

int main()
{
    int a,b;

    scanf("%d%d",&a,&b);

    if(a>b)             printf(">");
    else if(a<b)        printf("<");
    else                printf("=");

    return 0;
}

 

 

 

큰수 - 작은수

정수 두개가 입력으로 들어오면 큰수 - 작은수의 값을 출력하시오.

codeup.kr

 풀이 전략

1. 두 정수 a, b를 입력 받는다.
2. if(a > b) 이면 a - b를 출력한다.
3. else 이면 b - a를 출력한다.
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int a, b;
    
    scanf("%d %d", &a, &b);
    
    if(a > b)printf("%d", a - b);
    else     printf("%d", b - a);
    
    return 0;
}

 

 

 

7의 배수

7의 배수일 경우 multiple를 출력하고, 7의 배수가 아니면 not multiple을 출력하시오.

codeup.kr

풀이 전략

1. 자연수 a를 입력 받는다.
2. a가 7의 배수인지 if 를 사용하여 물어본다.

★7의 배수 확인 방법★

☞ 나머지 연산자 %를 활용한다. 즉, "7의 배수 = 7로 나누었을 때 나머지가 0" 

3. 7의 배수라면 multiple 출력
4. 아니라면 not multiple 출력

 

 

 

홀수 짝수 구별

홀수이면 odd를 출력, 짝수이면 even을 출력하시오.

codeup.kr

 

풀이 전략

1. 자연수 a를 입력 받는다.
2. 홀수이면 odd 출력
3. 짝수이면 even 출력

★ 홀수, 짝수 구별 방법

☞ 나머지 연산자 %를 활용한다.
☞ "짝수 = 2로 나누었을 때 나머지가 0"
☞ "홀수 = 2로 나누었을 때 나머지가 1"  
#include <stdio.h>

int main()
{
    int a;
    
    scanf("%d",&a);
    
    if(a%2 == 1) printf("odd");
    else         printf("even");
    
    return 0;
}

 

이상으로 선택제어문1을 배워보았습니다.

 

'코딩 이야기 > C언어' 카테고리의 다른 글

1st 형성평가  (2) 2022.04.13
입력문  (3) 2022.04.11
출력문  (3) 2022.04.10
프로젝트 준비  (1) 2022.04.10

댓글