정보처리기능사 실기 문제: 다양한 진법의 입력을 정수로 변환하고 출력하기
추천 자료: ASP.NET Core 인증 및 권한 부여
이 문제는 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입니다.)
해결 방법:
#include <stdio.h>
를 사용하여 표준 입출력 라이브러리를 포함합니다.int main()
함수를 정의하여 프로그램의 실행 시작점을 만듭니다.- 정수형 변수
octal
,hex
를 선언하여 사용자로부터 입력받을 8진수와 16진수 값을 저장합니다. scanf
함수와 함께%o
와%x
형식 지정자를 사용하여 각각 8진수와 16진수 값을 입력받습니다. 이때, 사용자는 "8진수#16진수" 형태로 값을 입력해야 합니다.printf
함수를 사용하여 입력받은 8진수와 16진수 값을 10진수로 변환한 결과를 출력합니다.
이 문제는 C 프로그래밍에서 다양한 진법의 숫자를 입력받고 처리하는 방법에 대한 이해를 묻는 문제로, scanf
함수의 다양한 형식 지정자 사용법을 숙지하는 것이 중요합니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!