write() 함수로 세자리 숫자 조합해서 출력하기
write()함수는 간단합니다. 첫번째 인자로 0,1,2 중에 하나를 입력합니다. 0 :표준입력, 1:표준출력, 2:표준오류 입니다. 화면 출력을 하려면 1을 지정합니다. 두번째 인자는 데이터 첫 주소값 입니다. 세번째 인자는 사용하려는 바이트의 수입니다.
#include <unistd.h>
size_t write( int fildes, const void *buf, size_t nbytes );
#include <unistd.h>
void ft_print_comb(void)
{
char numArr[3];
char separator[2];
numArr[0] = '0';
separator[0] = ',';
separator[1] = ' ';
while (numArr[0] <= '7')
{
numArr[1] = numArr[0] + 1;
while (numArr[1] <= '8')
{
numArr[2] = numArr[1] + 1;
while (numArr[2] <= '9')
{
write(1, numArr, 3);
if (numArr[0] != '7' || numArr[1] != '8' || numArr[2] != '9')
{
write(1, separator, 2);
}
++numArr[2];
}
++numArr[1];
}
++numArr[0];
}
}
int main(void){
ft_print_comb();
return 0;
}
하나씩 첫번재 배열 값보다 크게 지정하면 숫자가 겹치지 않은 조합수를 만들 수 있어요.
0 1 2 / 0 1 3 / 0 1 4 ... 6 7 8 / 6 7 9 / 6 8 9 / 7 8 9
복잡하게 보이지만 충분히 이해할 수 있는 수준의 코드입니다.
'C_C++' 카테고리의 다른 글
포인터 문법으로 스왑 swap 함수 작성해보자 (0) | 2020.07.06 |
---|---|
write() 함수로 0~9 숫자 출력 (0) | 2020.07.06 |
putchar() 함수로 알파벳 순서대로 출력하기 (0) | 2020.07.06 |
write() 함수와 scanf() If제어문으로 음수 양수 확인 (0) | 2020.07.06 |
[c/c++] putchar() 함수를 이용하여 int 숫자 출력 (3) | 2020.07.05 |