본문 바로가기
Programming/C

[CodeUp] 기초 100제 21~30번 문제

by Skogkatt의 개인 블로그 2019. 12. 28.
반응형

CodeUp 기초 100제 21~30번 문제 풀이

CodeUp 기초 100제 - https://codeup.kr/problemsetsol.php?psid=23

[CodeUp] 기초 100제 1~10번 문제

[CodeUp] 기초 100제 11~20번 문제

[CodeUp] 기초 100제 21~30번 문제 - 현재 글

[CodeUp] 기초 100제 31~40번 문제

[CodeUp] 기초 100제 41~50번 문제

[CodeUp] 기초 100제 51~60번 문제

[CodeUp] 기초 100제 61~70번 문제

[CodeUp] 기초 100제 71~80번 문제

[CodeUp] 기초 100제 81~90번 문제

[CodeUp] 기초 100제 91~99번 문제


[1021][기초-입출력] 단어 1개 입력받아 그대로 출력하기

#include <stdio.h>
int main(void)
{
    char a[51];
    scanf("%s", &a);
    printf("%s", a);
    return 0;
}
  • 50개의 문자를 저장하기 위해서는 char[51]으로 선언하면 된다.
  • 문자열 출력을 위해서는 %s를 사용한다.

 

[1022][기초-입출력] 문장 1개 입력받아 그대로 출력하기

#include <stdio.h>
int main(void)
{
    char a[2001];
    fgets(a,2000,stdin);
    printf("%s", a);
    return 0;
}
  • scanf는 공백을 기준으로 입력을 받기 때문에 공백 문자가 포함된 문장을 받으면 첫 번째 단어만 저장된다.
  • fgets()는 하나의 라인 자체를 입력 받기 때문에 사용해 공백 문자가 포함되어 있는 문장을 받을 수 있다.

 

[1023][기초-입출력] 실수 1개 입력받아 부분별로 출력하기

#include <stdio.h>
int main(void)
{
    int a, b;
    scanf("%d.%d", &a, &b);
    printf("%d\n%d", a, b);
    return 0;
}
  • scanf를 .으로 구분하게 해서 a, b 두 변수에 입력하고 출력은 \n 줄바꿈을 사용한다.

 

[1024][기초-입출력] 단어 1개 입력받아 나누어 출력하기

#include <stdio.h>
int main(void)
{
    int i;
    char a[21];
    scanf("%s", &a);
    for(i =0; i<21; i++)
    {
        if(a[i] == '\0') break;
        printf("\'%c\'\n",a[i]);
    }
    return 0;
}
  • c언어는 배열이라는 연속적인 공간에 문자들을 하나씩 저장하는 방법을 사용한다.
    abcd라는 문자를 a배열에 넣으면 a[1]에는 a가, a[2]에는 b가 들어가는 방식이다.
  • 이렇게 문자가 연속적으로 연결된 것을 문자열 이라고 하며 문자열의 맨 뒤에는 마지막임을 알리기 위한 NULL값이 들어간다.
    문자로는 '\0'으로 표기할 수 있다.
  • a배열의 문자를 하나하나 출력하고 NULL을 만나면 반복문에서 빠져나온다.

 

[1025][기초-입출력] 정수 1개 입력받아 나누어 출력하기

#include <stdio.h>
int main(void)
{
    int a,b,c,d,e;
    scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e);
    printf("[%d0000]\n[%d000]\n[%d00]\n[%d0]\n[%d]",a ,b ,c ,d ,e);
    return 0;
}
  • 변수 5개를 선언하고 %1d로 각 자리의 숫자를 한 개씩 나누어 변수에 저장한다.

 

[1026][기초-입출력] 시분초 입력받아 분만 출력하기

#include <stdio.h>
int main(void)
{
    int year, month, day;
    scanf("%d:%d:%d", &year, &month, &day);
    printf("%d", month);
    return 0;
}

 

[1027][기초-입출력] 년월일 입력 받아 형식 바꿔 출력하기

#include <stdio.h>
int main(void)
{
    int year, month, day;
    scanf("%d.%d.%d", &year, &month, &day);
    printf("%02d-%02d-%04d", day, month, year);
    return 0;
}

 

[1028][기초-데이터형] 정수 1개 입력받아 그대로 출력하기2

#include <stdio.h>
int main(void)
{
    unsigned int a;
    scanf("%u", &a);
    printf("%u", a);
    return 0;
}
  • int형은 -2147483648 ~ +2147483647 범위의 정수를 저장할 수 있다.
    이 이상의 데이터를 처리하기 위해선 더 큰 자료형을 사용해야 한다.
  • unsigned는 자료형 앞에 붙여 부호를 사용하지 않고 양수의 값을 두배 더 사용할 수 있게 한다.
  • 부호 없는(unsigned) 정수를 10진수로 출력할 때에는 %u를 사용한다.

 

[1029][기초-데이터형] 실수 1개 입력받아 그대로 출력하기2

#include <stdio.h>
int main(void)
{
    double a;
    scanf("%lf", &a);
    printf("%.11lf", a);
    return 0;
}
  • float 형은 주로 4bit의 단정밀도로 실수를 표현하고 double형은 주로 8bit의 배정밀도로 실수를 표현한다.
  • 각각 %f, %lf을 사용한다.

 

[1030][기초-데이터형] 정수 1개 입력받아 그대로 출력하기3

#include <stdio.h>
int main(void)
{
    long long int a;
    scanf("%lld", &a);
    printf("%lld", a);
    return 0;
}
  • long long int 형은 64bit를 사용하는 정수형이다.

 

반응형

댓글