[C언어 로직과 순서도] 02.선택구조
연습문제
예제 08
두 수 중 큰 수 찾기
사용자로부터 입력 받은 두 수를 변수 a, b에 저장하고, a 값이 b 값보다 크면 a 값을 출력하고, 그렇지 않으면 b 값을 출력한다.
분석 (설명)
- 사용자로부터 두 수를 입력받아 a, b에 저장한다.
- a가 b보다 큰지 판별한다.
- 위 2.번의 결과에 따라 큰 수를 출력한다.
설계 (순서도)
구현
// 실행결과
// 정수(2개): 3 8
// 큰 수: 8
예제 09
양수, 0, 음수 판별하기
사용자로부터 입력 받은 수를 변수 a에 저장하고, a가 0보다 작으면 “음수”를, 그렇지 않고 0보다 크면 “양수”를, 그렇지 않으면 “0”을 출력한다.
분석 (설명)
- a가 0보다 작으면 “음수”를 출력한다.
- 그렇지 않고 a가 0보다 크면 “양수”를 출력한다.
- 그렇지 않으면 “0”을 출력한다
설계 (순서도)
구현
/* 실행결과
정수: 10
양수다
*/
예제 10
세 수 중 가장 큰 수 찾기(1)
a가 b보다 크고 a가 c보다 크면 a가 가장 큰 수가 되고, a가 b보다 크고 a가 c보다 크지않으면 c가 가장 큰 수가 된다. a가 b보다 크지 않고 b가 c보다 크면 b가 가장 큰 수가 되고, a가 b보다 크지 않고 b가 c보다 크지 않으면 c가 가장 큰 수가 된다.
분석 (설명)
- a가 b보다 크고 a가 c보다 크면 a값을 출력한다.
- a가 b보다 크고 a가 c보다 크지 않으면 c값을 출력한다.
- a가 b보다 크지 않고 b가 c보다 크면 b값을 출력한다.
- a가 b보다 크지 않고 a가 c보다 크지 않으면 c값을 출력한다
설계 (순서도)
구현
/* 실행결과
정수(3개) : 3 7 10
가장 큰 수 : 10
*/
예제 11
세 수 중 가장 큰 수 찾기(2)
사용자로부터 첫 번째 수를 입력받아 max에 저장한다. 두 번째로 입력받은 수 a와 max를 비교하여 a가 max보다 크면 max에 a를 저장한다. 세 번째 수도 마찬가지 방법으로 수행한다. 결국 가장 큰 수가 max에 저장된다.
분석 (설명)
- 첫 번째 수를 입력 받아 max에 저장한다.
- 두 번째 수를 입력 받아 a에 저장한다.
- a가 max보다 크면 a 값을 max에 저장한다.
- 세 번째 수를 입력 받아 a에 저장한다.
설계 (순서도)
구현
/* 실행결과
정수: 3
정수: 10
정수: 7
가장 큰 수: 10
*/
예제 12
홀수, 짝수 판별하기
사용자로부터 입력받은 수를 2로 나누었을 때 나머지가 0이면 ‘짝수’, 나머지가 0이 아니면 ‘홀수’다. 예를 들어 입력받은 수가 10이라면 2로 나누었을 때 나머지가 0이 된다. 따라서 10은 ‘짝수’가 된다. 만약 입력받은 수가 15라면 2로 나누었을 때 나머지가 1이 되어0이 아니므로 15는 ‘홀수’가 된다.
분석 (설명)
- a를 2로 나눈 나머지가 0인지 판별한다.
설계 (순서도)
구현
/* 실행결과
정수: 200
짝수
*/
예제 13
3의 배수 판별하기
사용자로부터 입력받은 수를 3으로 나눈 나머지가 0이면 입력받은 수는 3의 배수이고, 그렇지 않으면 3의 배수가 아니다.
예를 들어, 10은 3으로 나눈 나머지가 0이 아니므로 3의 배수가 아니다. 반면 15는 3으로나눈 나머지가 0이므로 15는 3의 배수가 된다.
분석 (설명)
- a를 3으로 나눈 나머지가 0인지 판별한다
설계 (순서도)
구현
/* 실행결과
정수: 9
3의 배수
*/
예제 14
나이에 따른 입장료
입장료 정가가 5,000원인 경우 나이에 따른 요금체계가 다음과 같은 경우 나이를 입력 받아 입장료를 구한다.
입력 받은 나이가 8 미만이면 “0”을,
그렇지 않고 60 미만이면 정가인 5,000을,
그렇지 않으면 정가의 50%인 2,500을 출력한다.
분석 (설명)
- age<8이면 “0”을 출력한다.
- age<8이 아니고 age<60이면 charge 값을 출력한다.
- age<8이 아니고 age<60이 아니면 charge*0.5를 출력한다.
설계 (순서도)
구현
/* 실행결과
나이: 65
입장료: 2500.00
*/
예제 15
3의 배수이면서 5의 배수 판별하기
사용자로부터 입력받은 수를
3으로 나눈 나머지가 0이고
5로 나눈 나머지도 0이면
3의 배수이면서 5의 배수이다.
예를 들어, 10은 3으로 나누었을 때 나머지가 1이 되어 0이 아니다.
따라서 10은 ‘3의 배수이면서 5의 배수’가 아니다.
반면 15는 3으로 나누었을 때 나머지가 0이 되고, 5로 나누었을 때도 나머지가 0이 되므로
15는‘ 3의 배수이면서 5의 배수’가 된다.
분석 (설명)
- a를 3으로 나눈 나머지가 0이고 a를 5로 나눈 나머지가 0인지 판별한다
설계 (순서도)
구현
/* 실행결과
정수: 15
3과 5의 배수
*/
예제 16
나이에 따른 공원입장료
공원 입장료는 다음과 같은 경우 나이를 입력 받아 입장료를 구한다.
입력 받은 나이가 8미만이거나 60세 이상 이면 “무료”를 출력하고, 그렇지 않으면 “5,000원”을 출력한다.
분석 (설명)
- age가 8미만이거나 60이상인지 판별한다.
설계 (순서도)
구현
// 실행결과
과제
과제6
두 수를 입력받아 둘 중 작은 수를 출력하는 순서도와 C 프로그램을 작성하여라.
과제7
두 수를 입력받아 두 수의 차를 출력하는 순서도와 C 프로그램을 작성하여라.
과제8
양수, 0, 음수를 판별하는 순서도와 C 프로그램을 다음과 같이 작성하면 어떤 문제가 발생하는 찾아 서술하여라.
과제9
세 수를 입력받아 가장 작은 수를 출력하는 순서도와 C 프로그램을 작성하여라.
과제10
세 수를 입력받아 가장 작은 수를 출력하는 순서도와 C 프로그램을 작성하여라.
과제11
홀수, 짝수를 판별하는 다음 순서도의 ①과 ②를 채우고 그에 맞는 C 프로그램을 작성하여라.
과제12
3의 배수를 판별하는 다음 순서도의 ①을 채우고 C 프로그램을 작성하여라.
과제13
다음과 같은 요금 체계에 대해 거리에 따른 요금을 출력하는 순서도와 C 프로그램을 작성하여라.
과제14
하나의 수를 입력받아 5 또는 7의 배수인지 판별하는 순서도와 C 프로그램을 작성하여라.
과제15
다음 공원 입장료에 대한 요금을 구하는 순서도의 ①을 채우고 C 프로그램을 작성하여라.