C언어로 리눅스 터미널에서 정수를 나타낼 수 있는 함수를 만들어야 하는데 어떻게 코딩을 해야하는지 모르겠습니다.

조회수 888회

안녕하세요! 이번 주 부터 c를 배우기 시작한 초보입니다!

ubuntu terminal에서 .h, .c 그리고 main.c 파일을 가지고 컴파일 해서 돌아가는지 알아보는 수업을 하는 중입니다.

코딩을 어떻게 해야하는지 모르겠어서 질문 드려요!

1- C 언어로(prinf 나 atoi 같은 함수를 사용하지 않고) 콘솔에 숫자를 띄울 수 있는 함수를 만들어라.

프로토타입은 void my_put_number(int num); 사용 가능한 함수는 :my_put_char (char 을 넣는) 입니다.

(이미 fwrite로 (sizeof(char))을 넣어 만들어져 있는 함수 입니다)

2- 헤더나 int main()이 들어가는 main.c 는 만들었는데

main.c 는

#include <stdio.h>
#inlcude "my_put_number.h"

int main()
{
            my_put_number(""); //" " 에 아무 숫자나 넣으면 출력해야합니다//
             return 0;
 }

이며

my_put_number.h 는

#ifndef MY_PUT_NUMBER
#define MY_PUT_NUMBER

void my_put_number(int num);

#endif

입니다.

그리고 사용되는 my_put_char 함수는

void my_put_char (char c)
{
            fwrite(&c , sizeof(char) , 1 , stdout);
}

입니다.

정작 중요한 my_put_number.c 파일에 어떻게 작성해야 하는지 막막합니다

생각했던 방법은

a- 먼저 int num 의 정수 자리 수를 계산하고

b- % 를 사용하여 정수 자리 수를 각각 나눠 char 배열 저장 후

c- % 에서 나머지가 아닌 나눠진 수를 char 배열 저장 후

d- ASCII 를 통해 Char 배열에 저장된 숫자를 oct 코드로 변환

e- 그리고 my_put_char을 통해 숫자를 콘솔에 띄운다.

머리로는 이렇게 생각했는데 정작 코딩 방식은 전혀 모르겠습니다..

고수님들 도와주세요 ㅠ.ㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 비디오 메모리 주소를 이용해서 출력하라는 건가요? 입문자 숙제치고는 어렵군요. 정영훈 2017.8.25 11:25
  • 네 맞습니다, 다음 주 부터 포인터를 들어간다고 하는데 들어가기 전 문제라고 하네요 ^^;;; 알 수 없는 사용자 2017.8.25 11:26
  • 헐...fwrite 함수는 사용해도 되는건가보네요-.- 함수는 다 안된다길래....그럼 한번해보세요. 어렵지 않습니다. 정영훈 2017.8.25 12:16

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)