본문 바로가기

C 언어/연습문제

C언어 연습문제9

[문제]

프로그램 사용자로부터 10진수 형태로 정수를 하나 입력 받은 다음, 이를 2진수로 변환해서 출력하는 프로그램을 작성해 보자.

조건) 배열을 사용하는 방법과 재귀함수를 사용하는 방법 둘 다 프로그램 해볼 것

 

[실행결과]

10진수 정수 입력: 15
1111

 

[코드1: 배열 사용]

#include<stdio.h>

int main(void)
{
	char bin_arr[30];
	int num, cnt = 0;

	printf("10진수 정수 입력: ");
	scanf_s("%d", &num);

	while (num > 0) // 2진수로 변환
	{
		bin_arr[cnt++] = num % 2;
		num /= 2;
	}

	while (cnt > 0) // 2진수 변환 결과 출력
		printf("%d", bin_arr[--cnt]);
	
	return 0;
}

 

[코드2: 재귀함수 사용]

#include<stdio.h>

void GetBinary(int n);

void main()
{
	int num;

	printf("10진수 정수 입력: ");
	scanf_s("%d", &num);
	GetBinary(num);

	return 0;
}

void GetBinary(int n)
{
	if (n / 2)	GetBinary(n / 2);
	if (n != 0)	printf("%d", n % 2);
}

<참고>

윤성우의 열혈 C 프로그래밍

'C 언어 > 연습문제' 카테고리의 다른 글

C언어 연습문제11  (0) 2021.11.11
C언어 연습문제10  (0) 2021.11.11
C언어 연습문제8  (0) 2021.11.10
C언어 연습문제7  (0) 2021.11.10
C언어 연습문제6  (0) 2021.11.10