Layer 7 02 과제 최솟값, 최댓값 구하기(if, switch, 삼항 연산자)
2019. 3. 23. 17:39ㆍlayer7
1. 최솟값 구하기(if, switch, 삼항 연산자)
# 1-1. if문을 사용하여 최솟값 구하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include<stdio.h> int main() { //정수 3개를 저장할 변수 a,b,c; int a, b, c; //가장 작은 값을 저장할 변수 min int min; printf("Input(a,b,c): "); scanf("%d %d %d", &a, &b, &c); if (a >= b) min = b; else min = a; if (min > c) min = c; printf("min: %d\n", min); return 0; } | cs |
# 1-2. switch문을 사용하여 최솟값 구하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { //정수 3개를 저장할 변수 a,b,c; int a, b, c; //가장 작은 값을 저장할 변수 min int min; printf("Input(a,b,c): "); scanf("%d %d %d", &a, &b, &c); switch (a - b) { case 0:case 1: min = b; default: min = a; } switch (int(min>c)) //min>c만 사용하면 관계식을 제어식으로 사용하여 오류가 나옵니다.(C4144) { //그래서 min>c의 값을 정수형으로 형변환 하였습니다. case 1: min = c; } printf("min: %d\n", min); return 0; } |
# 1-3. 삼항 연산자를 사용하여 최솟값 구하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include<stdio.h> #include<windows.h> int main() { Sleep(1000); //정수 3개를 저장할 변수 a,b,c; int a, b, c; //가장 작은 값을 저장할 변수 min int min; printf("Input(a,b,c): "); scanf("%d %d %d", &a, &b, &c); min = a <= b ? a : b; min = min > c ? c : min; printf("min: %d\n", min); return 0; } | cs |
# 원리(1)
- 먼저, 변수 a, b의 값을 비교하여
작은 값을 min이라는 변수에 저장합니다.
그 후 변수 min과 c를 비교하여
c가 min 보다 더 작을 경우 min에 c를 저장하고,
출력합니다.
- if, switch, 삼항 연산자를 사용했다는 점은
같으며, 나머지 문제를 푸는 방법은 같습니다.
1. 최댓값 구하기(if, switch, 삼항 연산자)
# 2-1. if문을 사용하여 최댓값 구하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include<stdio.h> int main() { //정수를 입력 받을 변수 3개 int a, b, c; //최댓값을 저장할 변수 max int max; printf("Input(a,b,c): "); scanf("%d %d %d",&a,&b,&c); if (a >= b) max = a; else max = b; if (max < c) max = c; printf("Max: %d\n", max); return 0; } | cs |
# 2-2. switch문을 사용하여 최댓값 구하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include<stdio.h> int main() { //정수를 입력 받을 변수 3개 int a, b, c; //최댓값을 저장할 변수 max int max; printf("Input(a,b,c): "); scanf("%d %d %d", &a, &b, &c); switch (a-b) { case 0:case 1: max = a; default: max = b; } switch (int(max<c)) //min<c만 사용하면 관계식을 제어식으로 사용하여 오류가 나옵니다.(C4144) { //그래서 min<c의 값을 정수형으로 형변환 하였습니다. case 1: max = c; } printf("max: %d\n", max); return 0; } |
# 2-3. 삼항 연산자를 사용하여 최댓값 구하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include<stdio.h> int main() { //정수를 입력 받을 변수 3개 int a, b, c; //최댓값을 저장할 변수 max int max=0; printf("Input(a,b,c): "); scanf("%d %d %d", &a, &b, &c); max = max = a > b ? a : b; max = max < c ? c : max; printf("max: %d\n", max); return 0; } | cs |
# 원리(2)
- 먼저, 변수 a, b의 값을 비교하여
큰 값을 max이라는 변수에 저장합니다.
그 후 변수 max과 c를 비교하여
c가 max 보다 더 클 경우 max에 c를 저장하고
출력합니다.
- if, switch, 삼항 연산자를 사용했다는 점은
같으며, 나머지 문제를 푸는 방법은 같습니다.
'layer7' 카테고리의 다른 글
Layer 7 05 과제 - 함수 보고서 작성 (0) | 2019.04.07 |
---|---|
Layer 7 과제 04 코드업 기초 100제 풀기 (0) | 2019.04.03 |
Layer 7 03-1 과제 (배열 보고서 작성) (1) | 2019.03.31 |
Layer 7 03 과제 (0) | 2019.03.31 |
Layer7 01 과제 - "Hello, Layer7!" 간지나게 출력하기 (0) | 2019.03.23 |