[1023 문제]
#include <stdio.h>
main(){
int a;
int b;
scanf("%d.%d", &a, &b);
printf("%d\n%d", a, b);
}
앞의 정수 부분과 소숫점 아래의 소수부분을 .으로 구분해서 둘 다 정수값으로 입력받아 출력하는 방법이다.
[1024 문제]
#include <stdio.h>
main(){
char d[20];
scanf("%s", d);
for(int i=0; d[i]!='\0'; i++){
printf("\'%c\'\n", d[i]);
}
}
★★C언어에서 문장을 저장하기 위해 배열이라는 연속된 공간에 문자들을 연속으로 한 개씩 저장하는 방법을 사용한다.
단, 문자열의 마지막임을 나타내기 위해 문자열의 마지막에 NULL값을 삽입해 문장임을 나타낸다.
이 널값은 문자로는 \0으로, 아스키문자의 정수값은 0을 의미하며 NULL로도 사용할 수 있다.단어나 문장을 scanf("%s, ...);으로 입력받게 되면, 그 마지막에 널 문자가 자동으로 입력되는 것이다.
[1025 문제]
#include <stdio.h>
main(){
int a;
int b;
int c;
int d;
int e;
scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e);
printf("[%d]\n[%d]\n[%d]\n[%d]\n[%d]", a*10000, b*1000, c*100, d*10, e);
}
★scanf안에 %1d로 입력하면 한개의 숫자로 각각 구분되어 저장된다.
[1026 문제]
#include <stdio.h>
main(){
int h, m, s;
scanf("%d:%d:%d", &h, &m, &s);
printf("%d", m);
}
[1027 문제]
#include <stdio.h>
main(){
int y, m, d;
scanf("%d.%d.%d", &y, &m, &d);
printf("%02d-%02d-%04d", d, m, y);
}
정수의 자릿수는 %02d, %04d와 같은 형식으로 지정한다.
[1028 문제]
#include <stdio.h>
main(){
unsigned int a;
scanf("%u", &a);
printf("%u", a);
}
int형은 -2147483648 ~ +2147483647 범위의 정수가 입력되고 저장되어진다.
이보다 큰 범위의 정수값을 처리하기 위해서는 unsigned int형을 선언하면 된다.
unsigned int형 정수의 범위는 0 ~ 4294967295이다.
[1029 문제]
#include <stdio.h>
main(){
double d;
scanf("%lf", &d);
printf("%.11lf", d);
}
float의 데이터형은 +- 3.4*10-38 ~ +- 3.4*1038 범위의 실수를 저장할 수 있다.
하지만 이 보다 더 크거나 작은 실수를 저장하기 위해서는 보다 큰 범위를 저장할 수 있는 다른 데이터형을 사용해야 정상적으로 저장시킬 수 있다.
double은 더 정확하게 저장할 수 있지만, float보다 2배의 저장공간이 필요하다.
double 데이텨 형은 +- 1.7*10-308 ~ +- 1.7*10308 범위의 실수를 저장할 수 있다.
float | double ( 정확, 2배 저장공간 ) |
+- 3.4*10-38 ~ +- 3.4*1038 | +- 1.7*10-308 ~ +- 1.7*10308 |
[1030 문제]
#include <stdio.h>
main(){
long long int n;
scanf("%lld", &n);
printf("%lld", n);
}
int형보다 더 큰 정수 값을 저장하기 위해서 long long int데이터형을 사용할 수 있다.
int 데이터형의 정수 범위는 -2147483648 ~ +2147483647이고,
long long int 데이터형의 정수 범위는 -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 이다.
[1031 문제]
#include <stdio.h>
main(){
int d;
scanf("%d", &d);
printf("%o", d);
}
입력받은 %d정수형을 8진수 값으로 출력하기 위해서는 %o(octal), 즉, 8진수를 의미하는 %o로 출력해주면 된다.
[1032 문제]
#include <stdio.h>
main(){
int a;
scanf("%d", &a);
printf("%x", a);
}
입력받은 %d정수형을 16진수 값으로 출력하기 위해서는 %x(octalhexadecimal), 즉, 16진수를 의미하는 %x로 출력해주면 된다.
'알고리즘 스터디 > 코드업 기초100제 - C' 카테고리의 다른 글
[CodeUp] 코드업 기초 100제 C - 문제 1033~1042 - 비프시프트 연산, 비교연산 (0) | 2021.05.11 |
---|---|
[CodeUp] 코드업 기초 100제 C - 문제 1033~1042 - 산술연산 (0) | 2021.05.10 |
[CodeUp] 코드업 기초 100제 C - 문제 1012~1022 - 문자열 입출력 (0) | 2021.05.04 |
[CodeUp] 코드업 기초 100제 C - 문제 1001~1011 - 특수문자, 서식문자 출력 및 포인터 (0) | 2021.05.03 |
[CodeUp] 코드업 기초 100제 C - 시작하게 된 계기 (0) | 2021.05.03 |
댓글