본문 바로가기

프로그램언어/C언어

c언어 선택문 (if, switch)

선택 제어문에는 if문과 switch문이 있습니다. if문은 단 하나의 조건만을 평가할 수 있고 swith문은 한번에 여려 개의 조건을 평가 할 수 있습니다.

 

if문의 유형은 3가지 형태로 알아볼 수 있습니다.

 

유형1 - 참일 때만 실행하는 if문

if (조건)

    명령문

 

예제] 하나의 정수형 변수를 선언하여 입력된 수가 양수이면 양수를 출력하는 프로그램을 작성하시오.

소스코드 결과
 #include <stdio.h>
 int main()
 {
     int a;

     printf("정수 입력 : ");
     scanf("%d", &a);

     if (a > 0)
     {
         printf("양수\n");
     }  

     return 0;
 }

정수 입렬 : 5

양수


유형2 - 참과 거짓으로 두가지 유형만 존재하는 if문

if (조건)

    명령문1

else

    명령문2

 

예제] 하나의 정수형 변수를 선언하여 입력된 수가 홀수 또는 짝수인지 판별파는 프로그램을 작성하시오.

소스코드 결과
 #include <stdio.h>

 int main()
 {
     int a;

     printf("정수 입력 : ");
     scanf("%d", &a);

     if (a % 2 == 1)
     {
         printf("홀수\n");
     }
     else
     {
         printf("짝수\n");
     }

     return 0;
 }

출력1]

정수 입력 : 2

짝수

 

출력2]

정수 입력 : 3

홀수

 

유형3 - 여러가지 조건을 만족하는 if ~ else if문

if (조건)

    명령문1

else if (조건)

    명령문2

else if (조건)

    명령문3

---

else

    명령문n

 

예제] 하나의 정수형 변수를 선언하여 입력된 수가 양수, 음수, 영 인지를 판별하는 프로그램을 작성하시오.

소스코드 결과

 #include <stdio.h>

 int main() 
 { 
     int a; 
 
     printf("정수 입력 : "); 
     scanf("%d", &a); 

     if (a > 0) 
     { 
         printf("양수\n"); 
     } 
     else if(a == 0)
     { 
         printf("영\n"); 
     }

     else

     {

         printf("음수\n");

     }

     return 0; 
 }

결과1]

정수 입력 : 2

양수

 

 

결과2]

정수 입력 : 0

 

 

결과3]

정수 입력 : -2

음수

 

switch문은 연산식의 결과를 가질 수 있는 다양한 경우를 한번에 평가하여 처리할 수 있는 선택 제어문이다.

 

유형

switch(연산식)
{
   case 값1:
        명령문1
        break;
   case 값2:
        명령문2
        break;
   case 값3:
        명령문3
        break;
   default:
        명령문4
}

 

예제] 하나의 정수 값을 입력받아 90점이상이면 '수', 80점 이상이면 '우', 70점 이상이면 '미', 60점 이상이면 '양', 60점 미만은 '가'를 출력하는 프로그램을 작성하시오.

소스코드 결과

 #include <stdio.h>

 int main()
 {
     int a;
     printf("정수를입력하시오 : ");
     scanf("%d", &a);


     switch (a / 10) 
     {
     case 10:
     case 9:
         printf("수\n"); break;
     case 8:
         printf("우\n"); break;
     case 7:
         printf("미\n"); break;
     case 6:
         printf("양\n"); break;
     default:
         printf("가\n");
 }

 return 0;
}

결과1]

정수를입력하시오 : 95

수 

 

결과2]

정수를입력하시오 : 75

 

결과3] 

정수를입력하시오 : 45

 

 

문제1] 한 개의 정수를 입력 받아 양수이면 양수라고 출력하시오.
입력 예]           입력 예]               입력 예]
2                    -2                       0

출력 예]           출력 예]               출력 예]
양수

 


문제2] 한 개의 정수를 입력 받아 양수이면 양수, 음수이면 음수라고 출력하시오.
입력 예]           입력 예]               입력 예]
2                    -2                       0

출력 예]           출력 예]               출력 예]
양수                음수                   음수

 


문제3] 한 개의 정수를 입력 받아 양수, 음수, 영을 출력하시오.
입력 예]           입력 예]              입력 예]
2                     -2                     0

출력 예]           출력 예]              출력 예]
양수                음수                   영

 


문제4] 두 과목의 점수를 입력 받아 평균이 60이상 이면 합격 아니면 불합격을 출력하시오.
입력 예]                  입력 예]
45 70                      70 80

출력 예]                  출력 예]
불합격                    합격

 


문제5] 평균값을 입력 받아 90점 이상이면 ‘수’, 80점 이상이면 ‘우’, 70점 이상이면 ‘미’, 60점 이상이면 ‘양’, 나머지는 ‘가’를 출력 하시오.(단 점수는 100점 만점으로 한다) if문으로 작성
입력 예]                   입력 예]                    입력 예]
95                           55                           75

출력 예]                    출력 예]                   출력 예]
수                            가                          미

 


문제6] 평균값을 입력 받아 90점 이상이면 ‘수’, 80점 이상이면 ‘우’, 70점 이상이면 ‘미’, 60점 이상이면 ‘양’, 나머지는 ‘가’를 출력 하시오.(단 점수는 100점 만점으로 한다) switch문으로 작성
입력 예]                    입력 예]                   입력 예]
95                            55                          75

출력 예]                    출력 예]                    출력 예]
수                            가                           미

 


문제7] 한 개의 정수를 입력 받아 홀수와 짝수를 구분하여 출력 하시오.
입력 예]                   입력 예]
70                           75

출력 예]                   출력 예]
짝수                       홀수

 

문제8] 두 과목의 점수를 입력 받아 두 과목 점수 모두 60이상 이면 합격 아니면 불합격을 출력하시오.
입력 예]                   입력 예]
45 70                       70 80

출력 예]                    출력 예]
불합격                      합격

 


문제9] 두 과목의 점수를 입력 받아 두 과목 점수중 하나라도 80이상 이면 이수 아니면 재수강을 출력하시오.
입력 예]                    입력 예]
85 70                       70 70

출력 예]                    출력 예]
이수                         재수강

 


문제10] 두 과목의 점수를 입력 받아 두 과목의 평균 60이상 이면 합격 아니면 불합격을 출력하시오.( 단 두 과목 중 한 과목이라도 40점 미만이면 불합격)
입력 예]                    입력 예]
35 90                        70 80

출력 예]                     출력 예]
불합격                       합격

 


문제11] 년도를 입력받아 윤년과 평년을 판단하여 출력하시오.(400으로 나누어떨어지면 윤년 또는 4로 나누어떨어지고 100으로 나누어떨어지지 않으면 윤년 아니면 평년)
입력 예]                     입력 예]
2004                         2015

출력 예]                    출력 예] 
윤년                         평년

 


문제12] 평년을 기준으로 월을 입력 받아 마지막 날 수를 출력하시오. switch문으로 작성
          ( 1월부터 12월 : 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 )
입력 예]                     입력 예]                       입력 예]
2                              5                                11

출력 예]                     출력 예]                        출력 예]
28                             31                               30

 


문제13] 공무원 시험점수의 평균 값을 입력하여 80점이상 이면 합격 아니면 불합격을 출력하시오.
(단 군필이면 가산점 3점을 추가, 아니면 0점, 문자 변수 하나를 입력 받아 군필 확인)
입력 예]                      입력 예]
군필(Y/N) : Y                군필(Y/N) : N
평균 : 79                     평균 : 79

출력 예]                      출력 예
합격                           불합격