[코딩도장] Unit 17 ~ 19
1. if, else, else if 사용하기
1. if 사용하기
if 문은 조건식에 따라 결과를 다르게 출력할 수 있는 조건문이다
if (조건식)
{
코드 // 조건식이 만족할 때 코드 실행
}
if 문에서 실행할 코드가 한 줄이라면 중괄호를 생략할 수 있다
if (조건식)
코드 // 조건식이 만족할 때 코드 실행
※ 실행할 코드가 두 줄 이상일 때는 생략에 주의해야 한다
C 언어에서 if는 0일 때 거짓( false ), 0이 아닐 때 참( true )으로 동작한다
#include <stdio.h>
int main()
{
if (2) // 0이 아니므로 참
printf("참\n");
else
printf("거짓\n");
return 0;
}
위의 코드를 실행해보면 참이 출력되는 것을 볼 수 있다
C 언어에서는 0은 거짓이고, 0이 아닌 값은 참이 된다
실수도 마찬가지로 0.0f 는 거짓이고 0.0f 가 아닌 값들은 참이 된다
2. if - else 사용하기
if 와 else 를 사용하면 조건이 만족할 때와 만족하지 않을 때 각각 다른 코드를 실행할 수 있다
if (조건식)
{
코드1 // 조건식이 만족할 때 코드 실행
}
else
{
코드2 // 조건식이 만족하지 않을 때 코드 실행
}
if 문과 마찬가지로 실행할 코드가 한 줄이라면 중괄호를 생략할 수 있다
3. else if 사용하기
else if는 여러 개의 조건식을 지정하여 각각 다른 코드를 실행할 수 있다
if (조건식1)
{
코드1 // 조건식1이 만족할 때 코드 실행
}
else if (조건식2)
{
코드2 // 조건식2가 만족할 때 코드 실행
}
else if (조건식3)
{
코드3 // 조건식3이 만족할 때 코드 실행
}
else
{
코드4 // 아무 조건에도 만족하지 않을 때 코드 실행
}
2. 심사문제
17.8 청소년 콘텐츠 관람 제한하기
표준 입력으로 나이(만 나이)가 입력됩니다. 여기서 콘텐츠를 보여주기 전에 나이에 따라 제한 문구를 출력하고자 합니다. 만 18세 미만이면 "청소년 관람 불가"를 출력하는 프로그램을 만드세요(scanf 함수 호출 전에 문자열을 출력하면 안 됩니다).
정답에는 C 언어 컴파일러에서 정상적으로 컴파일되는 전체 코드를 입력해야 합니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int age;
scanf("%d", &age);
if (age < 18)
{
printf("청소년 관람 불가");
}
return 0;
}
18.9 else 사용하기
표준 입력으로 문자가 입력됩니다. 입력된 문자가 a이면 "a입니다."를 출력하고, a가 아니면 "a가 아닙니다."를 출력하는 프로그램을 만드세요(scanf 함수 호출 전에 문자열을 출력하면 안 됩니다).
정답에는 C 언어 컴파일러에서 정상적으로 컴파일되는 전체 코드를 입력해야 합니다.
#include <stdio.h>
int main() {
char c;
scanf("%c", &c);
if (c == 'a')
printf("a입니다.");
else
printf("a가 아닙니다.");
return 0;
}
18.10 합격 여부 판단하기
표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 여기서 네 과목의 평균 점수가 85점 이상일 때 합격이라고 정했습니다. 평균 점수에 따라 "합격", "불합격"을 출력하는 프로그램을 만드세요(scanf 함수 호출 전에 문자열을 출력하면 안 됩니다). 단, 점수는 0점부터 100점까지만 입력받을 수 있으며 범위를 벗어났다면 "잘못된 점수"를 출력하고 합격, 불합격 여부는 출력하지 않아야 합니다.
정답에는 C 언어 컴파일러에서 정상적으로 컴파일되는 전체 코드를 입력해야 합니다.
#include <stdio.h>
int main() {
int a, b, c, d, result;
scanf("%d %d %d %d", &a, &b, &c, &d);
result = (a + b + c + d) / 4;
if (a < 0 || a > 100 || b < 0 || b > 100 || c < 0 || c > 100 || d < 0 || d > 100)
printf("잘못된 점수");
else if (result >= 85)
printf("합격");
else
printf("불합격");
return 0;
}
if 문의 조건은 복잡해 보일수도 있다
0 < a < 100
0 < b < 100
0 < c < 100
0 < d < 100
4개의 조건 중 하나만 참이어도 "잘못된 점수" 가 출력되도록 했다
19.5 교통카드 시스템 만들기
표준 입력으로 나이(만 나이)가 입력됩니다. 교통카드 시스템에서 시내버스 요금은 다음과 같으며 각 나이에 맞게 요금을 차감한 뒤 잔액이 출력되게 만드세요(if, else if 사용). 현재 교통카드에는 10,000원이 들어있습니다.
정답에는 밑줄 친 부분에 들어갈 코드만 작성해야 합니다.
- 어린이(초등학생, 만 7세 이상 12세 이하): 450원
- 청소년(중∙고등학생, 만 13세 이상 18세 이하): 720원
- 어른(일반, 만 19세 이상): 1,200원
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int balance = 10000; // 교통카드 잔액
int age;
scanf("%d", &age);
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
printf("%d\n", balance);
return 0;
}
정답
if (age >= 7 && age <= 12){
balance -= 450;
}
else if (age >= 13 && age <= 18){
balance -= 720;
}
else if (age >= 19){
balance -= 1200;
}
if 문의 조건을
7 <= age <= 12 일 때는 450을 빼고
13 <= age <= 18 일 때는 720을 빼고
19 <= age 일 때는 1200을 빼도록 했다
'Coding > C' 카테고리의 다른 글
[C언어] switch 분기문 - 코딩도장 (0) | 2023.12.13 |
---|---|
[C언어] 비트 연산자 - 코딩도장 (0) | 2023.12.13 |
[C언어] 삼항 연산자, bool 자료형 - 코딩도장 (0) | 2023.12.11 |
[C언어] 문자 자료형, 상수 사용하기 - 코딩도장 (0) | 2023.12.02 |
[C언어] 정수 자료형, 실수 자료형 - 코딩도장 (0) | 2023.11.29 |