선택 제어문에는 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> else { printf("음수\n"); } |
결과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>
|
결과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
출력 예] 출력 예
합격 불합격
'프로그램언어 > C언어' 카테고리의 다른 글
c언어 배열 (0) | 2019.10.02 |
---|---|
c언어 반복문(for, while, do ~ while) (0) | 2019.10.02 |
c언어 연산자의 종류 (0) | 2019.10.01 |
c언어 Scanf()함수 (0) | 2019.09.30 |
c언어 오버플로우(overflow)와 언더플로우(underflow), 상수, 형변환 (0) | 2019.09.27 |