상세 컨텐츠

본문 제목

[CodeUp] C언어 기초 100제 풀이 (1021번 ~ 1030번)

C언어

by idea8590 2026. 2. 1. 20:17

본문

반응형

이번 단계에서는 문자열(단어, 문장)을 처리하는 방법과 기본 정수형의 범위를 넘어서는 데이터를 다루는 법을 배웁니다. 특히 공백이 포함된 문장을 입력받을 때 사용하는 fgets와, 긴 숫자를 처리하는 long long int는 실무에서도 매우 자주 쓰이는 중요한 개념입니다. 입력 데이터를 원하는 대로 쪼개거나 형식을 변환하는 테크닉을 익혀보세요.


1021번 : 단어 1개 입력받아 그대로 출력하기

C
 
#include <stdio.h>

int main() {
    char data[51];
    scanf("%s", data);
    printf("%s", data);
    return 0;
}

 

실행 결과

입력 예시: Informatics
출력 예시: Informatics

1022번 : 문장 1개 입력받아 그대로 출력하기

C
 
#include <stdio.h>

int main() {
    char data[2001];
    fgets(data, 2000, stdin);
    printf("%s", data);
    return 0;
}

 

실행 결과

입력 예시: Programming is very fun!!
출력 예시: Programming is very fun!!

1023번 : 실수 1개 입력받아 정수 부분과 실수 부분 나누어 출력하기

C
 
#include <stdio.h>

int main() {
    int a, b;
    scanf("%d.%d", &a, &b);
    printf("%d\n%d", a, b);
    return 0;
}

 

실행 결과

입력 예시: 1.414213
출력 예시:
1
414213

1024번 : 단어 1개 입력받아 나누어 출력하기

C
 
#include <stdio.h>

int main() {
    char d[21];
    scanf("%s", d);
    for(int i=0; d[i]!='\0'; i++) {
        printf("'%c'\n", d[i]);
    }
    return 0;
}

 

실행 결과

입력 예시: Boy
출력 예시:
'B'
'o'
'y'

1025번 : 정수 1개 입력받아 나누어 출력하기

C
 
#include <stdio.h>

int main() {
    int a, b, c, d, 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);
    return 0;
}

 

실행 결과

입력 예시: 75254
출력 예시:
[70000]
[5000]
[200]
[10]
[4]

1026번 : 시분초 입력받아 분만 출력하기

C
 
#include <stdio.h>

int main() {
    int h, m, s;
    scanf("%d:%d:%d", &h, &m, &s);
    printf("%d", m);
    return 0;
}

 

실행 결과

 
입력 예시: 17:23:57
출력 예시: 23

1027번 : 년월일 입력받아 형식 바꿔 출력하기

C
 
#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;
}

 

실행 결과

입력 예시: 2014.07.15
출력 예시: 15-07-2014

1028번 : 정수 1개 입력받아 그대로 출력하기 (unsigned int)

C
#include <stdio.h>

int main() {
    unsigned int n;
    scanf("%u", &n);
    printf("%u", n);
    return 0;
}

 

실행 결과

입력 예시: 2147483648
출력 예시: 2147483648

1029번 : 실수 1개 입력받아 그대로 출력하기 (double)

C
 
#include <stdio.h>

int main() {
    double d;
    scanf("%lf", &d);
    printf("%.11lf", d);
    return 0;
}

 

실행 결과

입력 예시: 3.14159265359
출력 예시: 3.14159265359

1030번 : 정수 1개 입력받아 그대로 출력하기 (long long int)

C
#include <stdio.h>

int main() {
    long long int n;
    scanf("%lld", &n);
    printf("%lld", n);
    return 0;
}

 

실행 결과

입력 예시: -2147483649
출력 예시: -2147483649

핵심 요약

  1. 공백이 포함된 문장을 입력받을 때는 scanf 대신 fgets 함수를 사용해야 끊김 없이 전체를 저장할 수 있습니다.
  2. 문자열의 맨 끝에는 항상 NULL 문자(\0)가 존재하므로, 이를 기준으로 반복문을 작성하면 한 글자씩 처리가 가능합니다.
  3. scanf에서 %1d처럼 숫자를 지정하면 입력된 숫자가 붙어있어도 원하는 자릿수만큼 잘라서 변수에 저장할 수 있습니다.
  4. float보다 훨씬 정밀한 소수점 계산이 필요할 때는 double 자료형과 %lf 서식 지정자를 사용해야 합니다.
  5. 일반 int 범위를 넘어서는 거대한 정수는 long long int 자료형과 %lld 서식을 사용해야 오버플로우가 발생하지 않습니다.
반응형

관련글 더보기