정보처리기능사 실기 문제: 다양한 진법의 입력을 정수로 변환하고 출력하기

  • 2 minutes to read

이 문제는 C 언어를 사용하여 사용자로부터 8진수와 16진수 형태의 숫자를 입력받고, 이를 10진수 정수로 변환하여 출력하는 프로그램을 작성하는 것을 목표로 합니다. scanf 함수의 형식 지정자를 활용하여 입력된 다양한 진법의 숫자를 정확하게 처리하는 방법을 이해하는 것이 중요합니다.

문제: 사용자로부터 "8진수#16진수" 형식으로 숫자를 입력받아, 해당 숫자들을 10진수로 변환하여 출력하는 C 프로그램을 작성하시오.

파일명: base_conversion.c

#include <stdio.h>

int main() {
    int octal, hex;
    // 사용자로부터 8진수와 16진수 입력 받기
    scanf("%o#%x", &octal, &hex);
    // 입력받은 값을 10진수로 변환하여 출력
    printf("%d %d", octal, hex);
}

입력 예시: 12#A (사용자가 입력하는 형태는 12(8진수)와 A(16진수)입니다.)

출력 예시: 10 10 (입력받은 8진수 12는 10진수로 10이며, 16진수 A는 10진수로 10입니다.)

해결 방법:

  1. #include <stdio.h>를 사용하여 표준 입출력 라이브러리를 포함합니다.
  2. int main() 함수를 정의하여 프로그램의 실행 시작점을 만듭니다.
  3. 정수형 변수 octal, hex를 선언하여 사용자로부터 입력받을 8진수와 16진수 값을 저장합니다.
  4. scanf 함수와 함께 %o%x 형식 지정자를 사용하여 각각 8진수와 16진수 값을 입력받습니다. 이때, 사용자는 "8진수#16진수" 형태로 값을 입력해야 합니다.
  5. printf 함수를 사용하여 입력받은 8진수와 16진수 값을 10진수로 변환한 결과를 출력합니다.

이 문제는 C 프로그래밍에서 다양한 진법의 숫자를 입력받고 처리하는 방법에 대한 이해를 묻는 문제로, scanf 함수의 다양한 형식 지정자 사용법을 숙지하는 것이 중요합니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com