본문 바로가기

About Security/C언어

도전 프로그래밍 2 도전2(10진수를 2진수로)

#include <stdio.h>
void Change(int arr2[],int j);

void Jinsu(int num) //10진수를 0과 1로 표현하는 함수
{
int arr[100];
int arr2[100];
int i=1;
int j;
arr[0] = num / 2;
arr2[0] = num % 2;
while(1)
{
arr[i] = arr[i-1] / 2;
arr2[i] = arr[i] % 2;
if(arr[i] == 1)
break;
i++;

}
j=i+1;

printf("%d", arr[i]);
Change(arr2,j);

}

void Change(int arr2[],int j) //0과 1로 저장된 배열 arr2의 순서를 바꿔줘야 진정한 10진수->2진수이다.
{
int temp;
int i;
int *fptr = &arr2[0];
int *bptr = &arr2[j-1];
for(i=0;i<j/2;i++)
{
temp = *fptr;
*fptr = *bptr;
*bptr = temp;

fptr += 1;
bptr -= 1;
}

for(i=0;i<j;i++)
printf("%d", arr2[i]);


}



int main(void)
{
int num;

printf("숫자를 입력하세요:");
scanf("%d", &num);

Jinsu(num);
return 0;

}

'About Security > C언어' 카테고리의 다른 글

도전프로그래밍2 도전4(회문판단)  (0) 2011.11.08
도전프로그래밍2 도전3(홀수는 앞에서 짝수는 뒤에서 채우자)  (0) 2011.11.08
새로운 c  (0) 2010.11.15
C언어 3일차  (1) 2010.08.06
C언어 2일차.  (2) 2010.08.05