티스토리 뷰

1019.

년, 월, 일을 입력받아 지정된 형식으로 출력하는 연습을 해보자.

 

입력. 2013.8.5
출력. 2013.08.05
#include <stdio.h>

//입력. 2013.8.5
//출력. 2013.08.05

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

 

1020.

주민번호는 다음과 같이 구성된다.

XXXXXX-XXXXXXX

앞의 6자리는 생년월일(yymmdd)이고 뒤 7자리는 성별, 지역, 오류 검출 코드이다.
주민번호를 입력받아 형태를 바꿔 출력해보자.

 

입력. 000907-1121112
출력. 0009071121112
#include <stdio.h>

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

 

1021. 

1개의 단어를 입력받아 그대로 출력해보자. (단, 단어의 길이는 50자 이하이다.)

 

✔  insight.

문자열은 char형 배열에 저장해서 사용한다. 문자열의 마지막을 알리는 null (\0, 0)이 배열의 마지막에 저장되므로

for문을 통해 char형 배열에 저장된 문자를 하나씩 출력하다가 만약 null을 발견하면 for문을 멈추어 출력을 멈춘다.

입력. Informatics
출력. Informatics
#include <stdio.h>

int main(void){
  char string[51];
  scanf("%s",string);
  for(int i=0; i<51; i++){
    if(string[i]!=0){
      printf("%c",string[i]);
    }else{
      break;
    }
  }
  return 0;
}

 

1022. 

공백 문자가 포함되어 있는 문장을 입력받고 그대로 출력하는 연습을 해보자.

 

✔  insight.

  • fgets()는 파일로부터 문자열을 가져오거나, 사용자에게 문자열을 입력받는 함수.

  • fgets() 함수를 사용해 문자열을 입력받기 위해서는

    • 첫 번째 인자:  문자열이 저장될 공간의 포인터

    • 두 번째 인자 : 입력받을 문자열의 길이 

    • 세 번째 인자 : 입력받을 스트림 방식 지정 (stdin : 공백이 포함된 문장을 키보드로 입력받는 스트림 방식)

    • (예) fgets(data, 2000, stdin); //fgets(char *str, int n, FILE *stream);

  • fgets()는 개행 문자까지 저장되며, 정해진 문자열의 길이를 벗어나거나 개행이 되는 경우 자동으로 입력을 중지

  • fgets()는 문자열을 입력받는 함수이므로, 서식 문자 % s를 사용하자

 

입력. Programming is very fun!!
출력. Programming is very fun!!
#include <stdio.h>

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

 

1023.

실수 1개를 입력받아 정수 부분과 실수 부분으로 나누어 출력한다. (단, 입력값은 절댓값이 10000을 넘지 않으며, 소수점 이하 자릿수는 최대 6자리까지이고 0이 아닌 숫자로 시작한다.) 첫 번째 줄에 정수 부분을, 두 번째 줄에 실수 부분을 출력한다. 

 

✔ insight.

  • 방법 1. 정수를 두 개 입력받는 경우, 정수와 실수 부분을.으로 구분해  입력받아 사용

  • 방법 2. 실수를 하나 입력받는 경우

    1. 정수 부분 출력 방법

      • 실수로 입력받는 경우 : 입력받은 실수를 int로 형 변환

      • 출력 시, 형식 지정자를 %. 0f를 사용

    2. 실수 부분 출력 방법

      • 입력받은 실수에서 정수 부분을 빼면 실수 부분만 남는다.

      • 코드 업에서 원하는 출력 예시와는 다르기 때문에 방법 1로 제출

 

입력. 1.414213
출력.
1
414213
#include <stdio.h>

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

 

1024.

단어를 1개 입력받는다. 입력받은 단어(영어)의 각 문자를 한 줄에 한 문자씩 분리해 출력한다. (단, 단어의 길이는 20자 이하이다.)

 

입력. Boy
출력.
'B'
'o'
'y'
#include <stdio.h>

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

 

1025. 

다섯 자리의 정수 1개를 입력받아 각 자리별로 나누어 출력한다. (단, 숫자의 범위는 10,000 <= 입력받는 수 <= 99,999 )

 

✔ insight.

  • 방법 1. 정수를 다섯 개를 입력받아 출력

    1. 하나의 정수를 입력하듯 다섯 개의 정수를 입력받아, 출력 시에 자릿수를 곱해 출력

    2. 주의** 한 자릿수만 입력받아야 하므로 형식 지정자가 % d 가 아닌, %1d 이어야 한다 **

    3. scanf("%1d%1d%1d%1d%1d",&a,&b,&c,&d,&e);

  • 방법 2. 실수를 하나 입력받아 출력

    1. 항상 다섯 자리의 정수를 입력받으므로 가능한 방법.

    2. 정수를 입력받아 정수형 변수 num에 저장

    3. num을 10000으로 나누어 얻어온 몫에 10000을 곱해 첫 번째 출력

    4. (num - 첫 번째 출력 값)을 변수 num에 저장

    5. num을 1000으로 나누어 얻어온 몫에 1000을 곱해 두 번째 출력

    6. (num - 두 번째 출력 값)을 변수 num에 저장

    7. 위와 같은 방법을 num이 한자리 수가 될 때까지 반복하고 한자리 수일 때 마지막으로 num을 출력

 

입력. 75254
출력.
[70000]
[5000]
[200]
[50]
[4]

 

#include <stdio.h>

int main(void){
  //방법1
  int a,b,c,d,e;
  scanf("%1d%1d%1d%1d%1d",&a,&b,&c,&d,&e);
  printf("[%d]\n",a*10000);
  printf("[%d]\n",b*1000);
  printf("[%d]\n",c*100);
  printf("[%d]\n",d*10);
  printf("[%d]\n",e);
  return 0;
}
#include <stdio.h>

int main(void){
  //방법 2
  int num;
  scanf("%d",&num);
  printf("[%d]\n", (num/10000)*10000);		//10000의 자리 출력
  num -= (num/10000)*10000;
  printf("[%d]\n", (num/1000)*1000);		//1000의 자리 출력
  num -= (num/1000)*1000;
  printf("[%d]\n", (num/100)*100);		//100의 자리 출력
  num -= (num/100)*100;
  printf("[%d]\n", (num/10)*10);		//10의 자리 출력
  num -= (num/10)*10;
  printf("[%d]\n", num);			//1의 자리 출력

  return 0;
}

 

 

1026. 

입력되는 시:분:초에서 분만 출력해보자.

 

입력. 17:23:57
출력. 23
#include <stdio.h>

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

 

1027. 

년월일을 출력하는 방법은 나라마다, 형식마다 조금씩 다르다. 연월일(yyyy.mm.dd)을 입력받아, 일 월년(dd-mm-yyyy)으로 출력해보자. (단, 한 자리 일/월은 0을 붙여 두 자리로, 년도도 0을 붙여 네 자리로 출력한다.) 

 

입력. 2014.07.15
출력. 15-07-2014
#include <stdio.h>

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

 

 

댓글
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
최근에 올라온 글
글 보관함
Total
Today
Yesterday