[문제]
프로그램 사용자로부터 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 |