티스토리 뷰
jungol > 문제 > Langauge_Corder > 선택제어문 - 자가진단 7~9
자가진단 7
- 문제 조건
대문자를 입력받고
입력된 문자에 대한 글 출력
이번에는 switch 를 이용 했다.
조건이 여러개 있을 경우
if…else if…else 로도 가능하지만
if() 이 괄호안을 적기가 귀찮을 때는
switch()을 이용하셔도 된다.
if(a==65)
(65는 A의 아스키코드입니다)을
switch로 바꾸면
switch(a) {
case 65:
…
}
로 바꿔 쓸 수 있다.
조건이 단순하되 여러 개일 경우 switch
를 사용해도 된다고 생각한다!
(코딩을 매우 못해서 잘 모르겠다)
default는 case에서
지정한 조건 외 모든 것을 의미다!
(if에서의 else 같은 존재다)
break은
switch, while 안 등을 벗어나게 한다.
위의 코드에서
break가 없었다면
예로서 A가 입력될 시
break가 없으니 Excellent부터 error까지
전부다 출력되게 된다!
그래서 switch문에서는 break를
잊지 말고 잘 사용해야 한다.
여러 번 출력했을 때의 결과다!
자가진단 8
이번에도 switch()을 이용하면 된다!
입력받는 수는 실수형이므로
float형 변수를 초기화했다.
또한 조건이 4.0 이상 3.0 이상 2.0 이상 2.0 미만 이므로
이는
case 4
case 3
case 2
default로 나타낼 수 있다.
여기서 실수형 변수를 내림하여 정수로
만들려면
입력값을 받은 변수에 (int)를 붙여
정수형으로 강제형변환을 해주면 된다!
잘 나왔다!
자가진단 9
이번에 사용하는 것은 조건 연산자(삼항 연산자)인
?
이다.
?
사용 방법
(조건) ? (참일 때) : (거짓일 때);
이렇게 사용한다
예) a = (b>=c) ? b : c;
b가 c보다 같거나 크면
a에 b를 대입
아닐 시 a에 c를 대입한다.
특정 상황에서는 if 보다 더욱 간편하게
활용 할 수 있다.
- 13) min = (a<b) ? a : b;
- 14) min = (min<c) ? min : c;
먼저 a하고 b를 비교한 후 더 작은 수를
min에 대입했다.
그다음 min 과 나머지 c를 비교했다.
여러 번 출력했을 때의 결과다!
코드
자가진단 7
#include <stdio.h>
int main(void)
{
char a = 0;
scanf(" %c", &a);
switch(a) {
case 65: printf("Excellent\n");
break;
case 66: printf("Good\n");
break;
case 67: printf("Usually\n");
break;
case 68: printf("Effort\n");
break;
case 70: printf("Failure\n");
break;
default: printf("error\n");
break;
}
return 0;
}
자가진단 8
#include <stdio.h>
int main(void)
{
float score 0;
scanf("%f", &score);
switch(score) {
case 4: printf("scholarship\n");
break;
case 3: printf("next semester\n\n");
break;
case 2: printf("seasonal semester\n");
break;
default: printf("retake\n");
break;
return 0;
}
자가진단 9
#include <stdio.h>
int main(void)
{
int a = 0, b = 0, c = 0;
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
int min = 0;
min = (a<b) ? a : b;
min = (min<c) ? min : c;
printf("%d", min);
return 0;
}
'c언어 > jungol' 카테고리의 다른 글
c언어 반복제어문1 자가진단 1~3 (jungol) (0) | 2022.02.27 |
---|---|
c언어 선택제어문 형성평가 1~5 (jungol) (0) | 2022.02.26 |
c언어 선택제어문 자가진단 5~6 (jungol) (0) | 2022.02.21 |
c언어 선택제어문 자가진단 1~4 (jungol) (0) | 2022.02.20 |
c언어 디버깅 형성평가 3~4 (jungol) (0) | 2022.02.19 |
- Total
- Today
- Yesterday
- 누적 합
- 세그먼트 트리
- 그리디
- java
- 트리
- 6198
- 정렬
- find
- 그래프
- DP
- 플로이드
- 최대공약수
- BFS
- 오프라인 쿼리
- 누적합
- union
- 1835
- C++
- 최소 스패닝 트리
- 스택
- 1835번
- 카드
- DFS
- 16120번
- Mo.s
- 백준
- 덱
- Krustal
- C언어
- 6198번
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 | 31 |