1020 : [기초 - 입출력] 주민번호 입력받아 형태 바꿔 출력하기
문제 설명 : https://codeup.kr/problem.php?id=1020
주민번호를 입력받아 출력하는 문제다.
- 주민번호 앞 6자리와 뒷 7자리의 입력은 '-'로 구분되어 입력된다.
- 몇 자리 숫자인지 어떤 숫자가 앞자리에 오는지를 생각한다.
- %d로 출력할 때 앞자리에 0이 입력되었을 때 어떻게 출력되는지를 생각한다.
#include <stdio.h>
int main()
{
int x, y;
scanf("%d-%d", &x, &y);
printf("%06d%d", x, y);
// 앞자리는 6자리이고 %d는 0이 입력되었을 때 생략이 되기 때문에 0을 포함하는 %06d를 사용한다.
return 0;
}
1021 : [기초 - 입출력] 단어 1개 입력받아 그대로 출력하기
문제 설명 : https://codeup.kr/problem.php?id=1021
한 개의 단어를 입력받아 그대로 출력하는 문제다.
- 문자열을 출력하기 위해 배열을 생성한다.
- 생성한 배열에는 문자가 저장된다.
- 앞에서 배운 형식 문자에서 문자열 형식을 사용한다.
배열은 뒤에서 자세히 배우게 된다. 배열은 배열 이름[인덱스]으로 초기화하고 인덱스는 0부터 전체 요소의 개수 -1 범위다.
예를 들어 data[51] = ""; data 배열을 51만큼 초기화했다면 배열은 51칸의 배열이 생긴다.
배열의 시작은 1이 아니고 0부터 시작하는 zero-based index이기 때문에 배열을 끝은 50이 된다.
0번째 배열부터 '문자'를 하나씩 입력받아 저장하고 문자열 형식 문자로 출력하면 '문자열'로 한 개의 단어로 출력된다.
문자열의 끝은 \0(NULL) 문자다. "Hello" 문자열의 배열의 길이를 측정하면 길이는 6개가 되고 6번째 배열에서 \0 문자가 나온다.
문자열은 \0 문자를 만났을 때 끝이 났다고 생각하고 \0 문자를 만나기 전까지를 반환한다.
#include <stdio.h>
int main()
{
char data[51] = "";
scanf("%s", &data);
printf("%s", data);
return 0;
}
1022 : [기초 - 입출력] 문장 1개 입력받아 그대로 출력하기
문제 설명 : https://codeup.kr/problem.php?id=1022
공백 문자가 포함되어 있는 문장을 입력받아 그대로 출력하는 문제다.
- fgets()를 사용하면 공백 문자가 포함되어 있는 문장을 입력받아 저장한다.
- scanf()를 이용해 문장을 입력받으면, 첫 번째 단어까지만 저장된다.
#include <stdio.h>
int main()
{
char data[2001];
fgets(data, 2000, stdin);
printf(data);
return 0;
}
1023 : [기초 - 입출력] 실수 1개 입력받아 부분별로 출력하기
문제 설명 : https://codeup.kr/problem.php?id=1023
실수를 입력받아 정수 부분과 실수 부분으로 나누어 출력하는 문제다.
- 정수 부분과 실수 부분을 나누어 입력받아 저장한다.
- 줄 바꿈(개행)을 통해 정수 부분과 실수 부분을 나누어 출력한다.
#include <stdio.h>
int main()
{
int x, y;
scanf("%d.%d", &x, &y);
printf("%d\n%d", x, y);
return 0;
}
1024 : [기초 - 입출력] 단어 1개 입력받아 나누어 출력하기
문제 설명 : https://codeup.kr/problem.php?id=1024
단어 1개 입력받아 한 문자씩 나누어 출력하는 문제다.
- for()는 반복문이다.
- !=는 비교 연산자다.
반복문은 뒤에서 자세히 배운다. 반복문에는 while 반복문과 for 반복문 두 가지가 있다.
for문은 계수에 기반을 둔 반복문이다.
연산자는 종류가 많다. 뒤에서 자세히 배울 것이다.
연산자의 우선순위는 매우 중요하기 때문에 먼저 설명한다.
결합성은 연산자 우선순위가 같을 때 어느 쪽을 먼저 연산할 것인지 나타낸다.
연산자 우선순위
우선순위 |
연산자 |
결합성 |
1 |
( ) [ ] . -> |
→ |
2 |
* & ! ++ -- (datatype) sizeof - |
← |
3 |
* & / |
→ |
4 |
+ - |
→ |
5 |
<< >> |
→ |
6 |
< > <= >= |
→ |
7 |
== != |
→ |
8 |
& |
→ |
9 |
^ |
→ |
10 |
| |
→ |
11 |
&& |
→ |
12 |
|| |
→ |
13 |
?: |
← |
14 |
= += -= *= %= /= &= |= ^\ <<= >>= |
← |
15 |
, |
→ |
#include <stdio.h>
int main()
{
char x[20]; // x는 배열 0 ~ 19
scanf("%s", &x);
for (int i = 0; x[i]!='\0'; i++) {
printf("\'%c\'\n", x[i]);
} // x 배열에서 i번째 배열부터 \0(null) 아닐 때까지 반복하고 \0이 아니면 %c 문자를 출력한다.
}
1025 : [기초 - 입출력] 정수 1개 입력받아 나누어 출력하기
문제 설명 : https://codeup.kr/problem.php?id=1025
다섯 자리 정수를 입력받아 각 자리별로 출력하는 문제다.
- *는 곱셈 연산자다.
출력할 때 값을 바꾸어 출력할 수 있다.
예를 들어 a = 1;로 초기화했을 때 printf("%d", a+1); 로 출력하다면 2가 출력된다.
#include <stdio.h>
int main()
{
int a, b, c, d, e;
scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e);
//scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e); 를 사용하면 1개의 숫자로 각각 구분되어 저장
printf("[%d]\n[%d]\n[%d]\n[%d]\n[%d]\n", a*10000, b*1000, c*100, d*10, e);
// 5자리 숫자 각각의 자리 수를 나타내기 위해 첫 째자리부터 곱하여 표현
return 0;
}
1026 : [기초 - 입출력] 시, 분, 초 입력받아 분만 출력하기
문제 설명 : https://codeup.kr/problem.php?id=1026
시, 분, 초를 입력받아 분을 출력하는 문제다.
- 시, 분, 초는 ':'(클론)으로 구분되어 입력받는다.
- 시, 분, 초를 입력받았지만 원하는 값만 출력한다.
아주 간단한 문제다. 원하는 값만 출력을 할 수 있다는 예를 보여주는 문제다.
#include <stdio.h>
int main()
{
int h, m, s;
scanf("%d:%d:%d", &h, &m, &s);
printf("%d", m);
return 0;
}
1027 : [기초 - 입출력] 년, 월, 일 입력받아 형식 바꿔 출력하기
문제 설명 : https://codeup.kr/problem.php?id=1027
년, 월, 일을 입력받아 형식을 바꾸어 출력하는 문제다.
- 년, 월, 일은 '.'(닷)으로 구분되어 입력받는다.
- 일, 월, 년으로 출력할 때 일, 월, 년은 '-'로 구분된다.
- 숫자의 자릿수를 생각하여 출력한다.
앞에서 배웠던 내용을 종합하는 문제다.
위치를 바꾸어 출력, '-' 포함하여 출력, 자릿수에 0을 포함하여 출력하는 종합문제다.
#include <stdio.h>
int main()
{
int y, m, d;
scanf("%d.%d.%d", &y, &m, &d); // 년.월.일을 입력 받음
printf("%02d-%02d-%04d", d, m, y); // 일-월-년으로 출력
return 0;
}
'CodeUp 기초 100제 > C' 카테고리의 다른 글
CodeUp[코드업] C언어 1047 ~ 1052 : [기초 - 시프트 연산] ~ [기초 - 비교 연산] (0) | 2019.12.08 |
---|---|
CodeUp[코드업] C언어 1038 ~ 1046 : [기초 - 산술 연산] (0) | 2019.12.08 |
CodeUp[코드업] C언어 1028 ~ 1037 : [기초 - 데이터형] ~ [기초 - 출력 변환] (0) | 2019.12.07 |
CodeUp[코드업] C언어 1010 ~ 1019 : [기초 - 입출력] (0) | 2019.12.05 |
CodeUp[코드업] C언어 1001 ~ 1008 : [기초 - 출력] (0) | 2019.12.04 |
댓글