본문 바로가기
CodeUp 기초 100제/C

CodeUp[코드업] C언어 1010 ~ 1019 : [기초 - 입출력]

by En_Geon 2019. 12. 5.

1010 : [기초 - 입출력] 정수 1개 입력받아 그대로 출력하기

문제 설명 : https://codeup.kr/problem.php?id=1010

 

정수(int)를 입력받아 그대로 출력하는 문제다.

사용자의 입력을 받을 수 있는 scanf() 함수를 배운다.

 

scanf() 함수는 형식 문자열에 맞추어, 표준 입력장치(stdin)로부터 정보를 읽어 들이는 함수다.

가변 인자는 사용자가 입력한 값이 저장된 메모리의 주소다.

 

  • &(Ampersand(앰퍼샌드))기호는 주소 연산자다.
  • &n은 n변수의 주소라는 의미다.
  • scanf() 함수를 사용할 때 & 기호(주소 연산자)를 빼먹는 실수를 자주 하기 쉽다.
  • scanf() 함수의 형식 문자열에 개행 문자(\n)를 포함하는 것은 매우 잘못된 것이다.
  • scanf() 함수는 보안에 취약해 쓰지 않고 scanf_s()를 사용한다.
  • scanf_s() 함수는 GCC에서 사용이 되지 않기 때문에 scanf() 함수를 사용한다.
  • 사용자가 입력한 정보를 제대로 해석할 수 없으면 scanf() 함수는 인수로 전달된 주소로 식별되는 메모리에 아무것도 넣지 않는다.
  • 정상적으로 정수를 입력한 것과 비정상적으로 문자를 입력한 것을 비교하면 쉽게 이해할 수 있다.

 

scanf() 함수로 사용자로부터 정수를 받고 받은 정수를 변수에 저장하고 저장한 값을 출력하는 간단한 문제다.

 

더보기

 

#include    <stdio.h>

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

 

1011 : [기초 - 입출력] 문자 1개 입력받아 그대로 출력하기

문제 설명 : https://codeup.kr/problem.php?id=1011

 

문자형(char)을 사용자에게 받아서 그대로 출력하는 문제다.

앞 문제와 같은 형식의 문제이며 이번에는 정수형(int)이 아닌 문자형(char)을 출력하는 문제다.

 

  • %c는 문자(character)의 지시자다.

scanf() 함수로 사용자로부터 문자를 받고 받은 문자를 변수에 저장하고 저장한 값을 출력하는 간단한 문제다.

 

더보기

 

#include         <stdio.h>

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

 

1012 : [기초 - 입출력] 실수 1개 입력받아 그대로 출력하기

문제 설명 : https://codeup.kr/problem.php?id=1012

 

실수형(float)를 입력받아 출력하는 문제다.

지금까지 두 번 연습했던 문제와 같은 문제이나 이번엔 실수형(float)를 출력한다.

 

  • %f는 10진수(decimal float)의 지시자다.
  • float는 정밀도가 7자리다. 따라서 소수점 이하 6번째 자리까지다.
  • 소수점 이하 7번째 숫자는 부정확한 것이므로 사실상 활용할 수 없는 정보다.
  • 크기는 32bit(4byte)다.
  • 저장 가능한 값의 범위는 -3.4*10^38 ~ 3.4*10^38 까지다.
  • 대부분 실수 자료는 float형보다는 double형을 사용할 것을 권장한다.

scanf() 함수로 사용자로부터 실수를 받고 받은 실수를 변수에 저장하고 저장한 값을 출력하는 간단한 문제다.

 

더보기

 

#include      <stdio.h>

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

 

1013 : [기초 - 입출력] 정수 2개 입력받아 그대로 출력하기

문제 설명 : https://codeup.kr/problem.php?id=1013

 

  • 정수(int) 2개를 입력받아 출력하는 문제다.
  • %d는 10진수(decimal)의 지시자다.
  • 정수형 int의 저장 가능 범위는 -2,147,483,648 ~ 2,147,483,647(-2^31 ~ 2^31-1) 약 +- 20억.
  • int의 크기는 32bit(4byte)다.

scanf() 함수로 사용자로부터 정수 2개를 받고 받은 정수를 변수에 저장하고 저장한 값을 출력하는 간단한 문제다.

이때, 2개의 정수는 공백으로 구분되어 입력되기 때문에 scanf() 함수에서도 공백을 포함한다. 출력도 공백을 포함한다.

 

더보기

 

#include      <stdio.h>

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

 

1014 : [기초 - 입출력] 문자 2개 입력받아 순서 바꿔 출력하기

문제 설명 : https://codeup.kr/problem.php?id=1014

 

2개의 문자를 입력받아 순서를 바꿔 출력하는 문제다.

앞 문제와 같은 유형의 문제다. 

 

scanf() 함수로 사용자로부터 문자 2개를 받고 받은 문자를 변수에 저장하고 저장한 값을 출력하는 간단한 문제다.

이때, 2개의 문자는 공백으로 구분되어 입력되기 때문에 scanf() 함수에서도 공백을 포함한다. 출력도 공백을 포함한다.

 

  • 입력을 &1, &2로 받았다면 출력에서 2, 1 순으로 출력하면 순서가 바뀐다. 
더보기

 

#include      <stdio.h>

int main()
{
    char x, y;
    scanf("%c %c", &x, &y);    
    printf("%c %c", y, x);      
    return 0;
}

 

1015 : [기초 - 입출력] 실수 입력받아 둘째 자리까지 출력하기

문제 설명 : https://codeup.kr/problem.php?id=1015

 

실수(float)를 입력받아 소수점 셋째 자리에서 반올림하여 소수점 둘째 자리까지 출력하는 문제다.

이제 입력받는 scanf() 함수를 이해했을 것이므로 scanf() 함수에 대한 설명은 생략한다.

 

  • %.1f, %.2f, %.3f와 같은 형식으로 지정하면 소수점 몇 번째 자리까지 출력할 것인가를 지정한다.
  • %.1f는 소수점 둘째 자리에서 반올림해서 소수점 첫째 자리까지 출력한다.
더보기

 

#include     <stdio.h>

int main()
{
    float x;   
    scanf("%f", &x);    
    printf("%.2f", x); 
   
    return 0;
}

 

1017 : [기초 - 입출력] 정수 1개 입력받아 3번 출력하기

문제 설명 : https://codeup.kr/problem.php?id=1017

 

int형 정수 1개를 입력받아 공백을 두고 3번 출력하는 문제다.

 

  • 입력을 1개만 받아도 여러 개, 여러 번 출력이 가능하다.
더보기

 

#include      <stdio.h>

int main()
{
    int x;
    scanf("%d", &x);    
    printf("%d %d %d", x, x, x);    
    return 0;
}

 

1018 : [기초 - 입출력] 시간 입력받아 그대로 출력하기

문제 설명 : https://codeup.kr/problem.php?id=1018

 

시간을 입력받아 그대로 출력하는 문제다.

 

앞서 배운 입력에 공백으로 두 수를 구분 지어 주었다면 이번에는 :(콜론)으로 구분지어 입력받는다.

 

더보기

 

#include      <stdio.h>

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

 

1019 : [기초 - 입출력] 연, 월, 일 입력받아 그대로 출력하기

문제 설명 : https://codeup.kr/problem.php?id=1019

 

년, 월, 일을 입력받아 출력하는 문제다.

 

  • %02d, %03d, %04d와 같은 형식으로 지정하면 몇 칸을 사용하여 출력하는지를 지정한다.
  • 한 자리 수인 경우 앞에 0을 붙여 출력한다.
  • 년, 월, 일이 몇 자리 숫자인지 생각하고 출력한다.
더보기

#include     <stdio.h>

int main()
{
    int y, m, d;
    scanf("%d.%d.%d", &y, &m, &d);
    printf("%04d.%02d.%02d", y, m, d);  
   
    return 0;
}

댓글