코딩 공부
<Codeup 21-30> 코드업 문제 풀이 본문
1021 [기초-입출력] 단어 1개 입력받아 그대로 출력하기
문제 풀이: 50자 이하의 단어를 입력받고 그대로 출력하기 위해서는 char data[51] = "" 을 사용한다. char data[50]=""은 크기가 51인 char형 배열을 선언한다는 뜻이다. char data[50] = "" 을 사용하지 않는 이유는 글자 끝에는 끝을 의미하는 NULL이 들어가야하기 때문이다.
#include <stdio.h>
int main()
{
char data[51] = ""; //크기가 51인 char형 배열을 선언하고 문자열 할당
scanf("%s", &data); //문자열 입력받기
printf("%s", data); //문자열 그대로 출력하기
return 0;
}
1022 [기초-입출력] 문장 1개 입력받아 그대로 출력하기
fgets: fgets 함수는 scanf 함수와는 달리 오직 개행 문자에 의해서만 입력이 끝나기때문에 띄어쓰기가 있는 문자열도 입력받을 수 있다.
문제 풀이: 공백 문자가 들어가있는 문자열을 출력하려면 fgets()를 사용한다.
#include <stdio.h>
int main()
{
char data[2001]; //2000개의 단어로 이루어진 문자열을 저장한다
fgets(data, 2000, stdin); //stdin으로부터 문자열을 입력받아서 data에 저장하되 200만큼만 저장된다
printf("%s", data); //입력받은 data를 출력한다
return 0;
}
1023 [기초-입출력] 실수 1개 입력받아 부분별로 출력하기
문제 풀이: 입력을 받을때 소수점 (.)으로 구분지어 입력받는다.
#include <stdio.h>
int main()
{
int a; //정수 변수를 선언하고 a를 정수로 저장한다
float b; //실수 변수를 선언하고 b를 실수로 저장한다
scanf("%d.%f", &a, &b); //a와 b를 .으로 구분하여 입력받는다
printf("%d \n", a); //a를 출력하고 줄바꿈을한다
printf("%.0f", b); //b를 소수점 0자리수까지 출력한다
return 0;
}
1024 [기초-입출력] 실수 1개 입력받아 부분별로 출력하기
문제 풀이: for문을 사용해 문자 하나하나 \0인지 확인하며 출력한다.
#include <stdio.h>
int main()
{
char x[25]; //24개의 문자가 들어갈 수 있는 문자열을 x라고 선언한다
scanf("%s", &x); //x값을 입력받는다
int i; //정수 변수를 선언하고 i를 정수로 저장한다
for(i = 0; i < 25; i++) //i의 초기값은 0이고 i가 25보다 작을때까지 한번씩 더해가면서 for문이 실행된다
{
if(x[i] == '\0') break; //x(문자열)의 i번째 문자가 \0(null 문자)이면 for문을 바로 탈출한다
printf("\'%c\'\n", x[i]); //x 문자열의 i번째 문자를 ' '안에 출력한다
}
return 0;
}
1025 [기초-입출력] 정수 1개 입력받아 나누어 출력하기
문제 풀이: 다섯 자리의 정수 1개를 입력받아 각 자리별로 나누어 출력하려면 숫자 하나하나 다른 변수로 입력받은후 그 자리수 만큼을 곱하여 출력한다.
#include <stdio.h>
int main()
{
int a, b, c, d, e; //a, b, c, d, e를 정수로 저장하고 정수 변수를 선언한다
scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e); //a, b, c, d, e값을 각각 따로 한자리씩 입력받는다
printf("[%d] \n", a*10000); //a를 10000에 곱해서 출력한다
printf("[%d] \n", b*1000); //b를 1000에 곱해서 출력한다
printf("[%d] \n", c*100); //c를 100에 곱해서 출력한다
printf("[%d] \n", d*10); //d를 10에 곱해서 출력한다
printf("[%d] \n", e); //e를 출력한다
return 0;
}
1026 [기초-입출력] 시분초 입력받아 분만 출력하기
문제 풀이: scanf는 정해진 형식으로 입력받기 때문에 %d:%d:%d로 입력받으면 h, m, s에 각각 정수값만 저장된다
#include <stdio.h>
int main()
{
int h, m, s; //정수 변수를 선언하고 h, m, s를 정수로 저장한다
scanf("%d:%d:%d", &h, &m, &s); //h, m, s의 값을 정해진 형식으로 (:) 입력받는다
printf("%d", m); //분인 m만 출력한다
return 0;
}
1027 [기초-입출력] 년월일 입력 받아 형식 바꿔 출력하기
문제 풀이: yyyy.mm.dd로 입력받아 dd-mm-yyyy로 출력하기 위해서는 정해진 형식으로 입출력 해야한다.
#include <stdio.h>
int main()
{
int y, m, d; //정수 변수를 선언하고 y, m, d를 정수로 저장한다
scanf("%d.%d.%d", &y, &m, &d); //y.m.d 형식으로 값을 입력받는다
printf("%02d-%02d-%04d", d, m, y); //d와 m은 2자리수, y는 4자리 수로 출력한다
return 0;
}
1028 [기초-데이터형] 정수 1개 입력받아 그대로 출력하기2
문제 풀이: unsigned int 는 int형보다 범위가 크기에 unsigned int를 사용한다
#include <stdio.h>
int main()
{
unsigned int n; //n을 unsigned int로 저장한다
scanf("%u", &n); //n값을 입력받는다
printf("%u", n); //n을 출력한다
return 0;
}
1029 [기초-데이터형] 실수 1개 입력받아 그대로 출력하기2
문제 풀이: double 는 float형보다 범위가 크기에 double을 사용한다
#include <stdio.h>
int main()
{
double d; //d을 double 로 저장한다
scanf("%lf", &d); //d 값을 입력받는다
printf("%.11lf ", d); //d를 소수점 11자리까지 출력한다
return 0;
}
1030 [기초-데이터형] 정수 1개 입력받아 그대로 출력하기3
문제 풀이: 문제의 범위에 맞는 long long int를 사용한다
#include <stdio.h>
int main()
{
long long int n; //n을 long long int의 변수로 저장한다
scanf("%lld", &n); //n값을 입력받는다
printf("%lld", n); //n을 출력한다
return 0;
}
'codeup 기초 100제' 카테고리의 다른 글
<Codeup 11-20> 코드업 문제풀이 (0) | 2019.12.09 |
---|---|
<Codeup 61-70> 코드업 문제풀이 (0) | 2019.12.08 |
<Codeup 51-60> 코드업 문제풀이 (0) | 2019.12.06 |
<Codeup 41-50> 코드업 문제풀이 (0) | 2019.12.06 |
<Codeup 1-10> 코드업 문제풀이 (0) | 2019.12.05 |