본문 바로가기
알고리즘 스터디/코드업 기초100제 - C

[CodeUp] 코드업 기초 100제 C - 문제 1023~1032 - 데이터형, 출력변환

by 레일라오리덕 2021. 5. 8.
728x90

[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로 출력해주면 된다.

728x90

댓글