검색어 입력폼

[A+]10진수를 2진수로변환(함수이용하기)

저작시기 2009.09 |등록일 2010.04.03 한글파일한글 (hwp) | 4페이지 | 가격 800원

소개글

10진수를 입력받아서 2진수로 변환하여라.
*함수이용하기
-C언어에 익숙해 지기위해서 이것 저것 문법들을 사용해보았다.

1. if/else 문으로 0과 1을 입력받았을 때는 직접 이진수를 출력한다.
2. 동적 할당을 위한 사이즈를 for 문을 이용하여 할당한다.
3. malloc 함수를 이용해서 동적할당을 한다.
4. d2b함수로 10진수, 동적배열의 크기, 동적배열을 넘겨준다.
5. 입력받았던 10진수를 2로 나누면서 그 나머지를 차례로 배열 끝부분부터 대입한다.
6. 이진수의 첫째 숫자는 무조건 1이므로 배열의 0번지에 1을 대입한다.
(앞에서 동적 할당 할 때 size+1을 해주었고, 배열의 끝 부분부터 대입 받았기 때문에 0번지가 비어있다.)
7. for 문을 이용하여 배열의 0번지부터 차례로 출력한다.
8. 동적 할당 해주었던 메모리를 해제한다. (이때, 배열에 NULL값을 대입해놔야 한다.)

목차

●문제 분석
●문제 해결 방법 설명(순서도 포함)
●소스코드
●결과
●느낀 점 및 소감

본문내용

●문제 분석
10진수를 입력받아서 2진수로 변환하여라.
*함수이용하기
●문제 해결 방법 설명(순서도 포함)
-C언어에 익숙해 지기위해서 이것 저것 문법들을 사용해보았다.

1. if/else 문으로 0과 1을 입력받았을 때는 직접 이진수를 출력한다.
2. 동적 할당을 위한 사이즈를 for 문을 이용하여 할당한다.
3. malloc 함수를 이용해서 동적할당을 한다.
4. d2b함수로 10진수, 동적배열의 크기, 동적배열을 넘겨준다.
5. 입력받았던 10진수를 2로 나누면서 그 나머지를 차례로 배열 끝부분부터 대입한다.
6. 이진수의 첫째 숫자는 무조건 1이므로 배열의 0번지에 1을 대입한다.
(앞에서 동적 할당 할 때 size+1을 해주었고, 배열의 끝 부분부터 대입 받았기 때문에 0번지가 비어있다.)
7. for 문을 이용하여 배열의 0번지부터 차례로 출력한다.
8. 동적 할당 해주었던 메모리를 해제한다. (이때, 배열에 NULL값을 대입해놔야 한다.)

●소스코드
#include <stdio.h>
#include <stdlib.h> //malloc & free 함수를 쓰기위해 필요

void d2b(int decimal, int size,int* b)
{
int i;
//b[size]~b[1] 까지 2로 나눈 수를 차례로 대입
//한마디로 거꾸로 ex> b[3] , b[2] , b[1] ... 순으로 대입
for(i = size; decimal != 1; decimal/=2)
{
다운로드 맨위로