티스토리 뷰
jungol > 문제 > Langauge_Corder > 선택제어문 - 형성평가 1~5
형성평가 1
- 문제 조건
두 정수의 차 구하기
두 정수의 차를 구하기 위해
10) int num= a-b;
두 수를 빼준 후 num이란 변수에 값을 대입한 뒤
11) if(num < 0) num = (-1) * num;
그 값이 음수면 -1을 곱해 양수로 만들었다.
여러번 실행해도 두 수의 차가 양수로 잘 나온다!
형성평가 2
- 문제 조건
조건 1 : 양수 입력 ~ plus 출력
조건 2 : 음수 입력 ~ minus 출력
조건 3 : 0 입력 ~ zero 출력
조건 1, 2, 3은 종속적인 관계가 아니므로
if, else if, else을 사용하여 조건을 나타냈다.
9) if(a==0) printf("zero\n");
//조건 3
10) else if(a>0) printf("plus\n");
//조건 2
11) else printf("minus");
//조건 1
11)의 else은 a=!0 || a<=0의 의미를 가진다.
잘 작동한다.
형성평가 3
- 문제 조건
조건 1 : 400으로 나눴을 때 나머지가 0 ~ 윤년
조건 2 : 4로 나눴을땐 나머지가 0이나, 100으로 나눴을 땐 나머지가 0이 아님 ->윤년
조건 3 : 조건 1, 2의 나머지 ->평년
이번에도 조건 1, 2, 3은 서로 동등한 위치에 있으니
if, else if, else꼴로 조건을 나타냈다.
예) 입력값 24
조건 1에선 나머지가 24이므로 그냥 넘어간다.
(24%400 = 24)
조건 2에선 4와 나눌 땐 나머지가 0 이므로 부합
100으로 나눌 땐 나머지가 24이므로 조건에 부합
그래서 조건 2를 만족하며 leap year 가 출력된다.
조건 3은 조건 1과 조건 2를 제외한 나머지 이므로
지나간다.
잘 나왔다.
형성평가 4
- 문제 조건
조건 1 : 1 입력 ~ dog 출력
조건 2 : 2 입력 ~ cat 출력
조건 3 : 3 입력 ~ chick 출력
조건 4 : 1, 2, 3 외 입력 ~ I don't know 출력
이번에는 조건들을 switch로 만들었다.
조건 1, 2, 3, 4은
각각 case 1: case 2: case 3: default:로 적었다.
여기서 case가 끝날 때마다 break;을 해줘야 여러 개가 출력되는 참사를 막을 수 있다.
여러 번 실행했을 때이다!
형성평가 5
- 문제 조건
달 입력 ~ 입력받은 날의 일 수 출력 (평년 시)
조건 1 : 2 입력 ~ 28 출력
조건 2 : 4, 6, 9, 11 입력 ~ 30 출력
조건 3 : 1, 3, 5, 7, 8, 10, 12 입력 ~ 31 출력
이번에도 조건들은 동등한 관계이므로
if, else if , else로 나타냈다.
8) if(a==2) printf("28\n");
//조건 1
9) else if(a==4 || a==6 || a==9 || a==11) printf("30\n");
//조건 2
10) else printf("31\n");
//조건 3
잘 실행됐다!
코드
형성평가 1
#include <stdio.h>
int main(void)
{
int a = 0, b = 0;
scanf("%d", &a);
scanf("%d", &b);
int num a-b;
if(num<0) num = (-1) * num;
printf("%d", num);
return 0;
}
형성평가 2
#include <stdio.h>
int main(void)
{
int a = 0;
scanf("%d", &a);
if(a==0) printf("zero\n");
else if(a>0) printf("plus\n");
else printf("minus\n");
return 0;
}
형성평가 3
#include <stdio.h>
int main(void)
{
int a = 0;
scanf("%d", &a);
if(a%400==0) printf("leap year\n");
else if(a%4==0 || a%100!=0) printf("leap year\n") else printf("common year\n");
return 0;
}
형성평가 4
#include <stdio.h>
int main(void)
{
int a = 0;
printf("Number? ");
scanf("%d", &a);
switch(a) {
case 1: printf("dog\n");
break;
case 2: printf("cat\n");
break;
case 3: printf("chick\n");
break;
default: printf("I don't know");
}
return 0;
}
형성평가 5
#include <stdio.h>
int main(void)
{
int a = 0; //입력값은 1~12이다!
scanf("%d", &a);
if(a==2) printf("28\n");
else if(a==4 || a==6 || a==9 || a==11) printf("30\n"); else printf("31\n");
return 0;
}
'c언어 > jungol' 카테고리의 다른 글
c언어 반복제어문1 자가진단 1~3 (jungol) (0) | 2022.02.27 |
---|---|
c언어 선택제어문 자가진단 7~9 (jungol) (0) | 2022.02.23 |
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
- 오프라인 쿼리
- Krustal
- 트리
- 그리디
- C++
- DFS
- find
- C언어
- 1835번
- 누적합
- 카드
- 정렬
- 16120번
- 누적 합
- 스택
- 덱
- 6198
- BFS
- Mo.s
- 최대공약수
- 6198번
- 최소 스패닝 트리
- 그래프
- 1835
- 백준
- 세그먼트 트리
- DP
- union
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |