c 언어 10진수를 2진수로

xodn158의 이미지

간단하게 10진수 입력받아서 2진수로 바꿔주는 프로그램을 짜봤는데
10진수를 주면 출력이 안나오네요.. 어느 부분이 문제인건가요?

#include <stdio.h>
 
void reverseArrayInt(int* array, int size);
 
int main() {
	int n,a[12],i=0;
	scanf("%d", &n);
	while(n){
		a[i] = n%2;
		n/=2;
		i++;
	}
	reverseArrayInt(a,i);
	i =0;
	while(i){
		printf("%d ", a[i]);
	}
}
void reverseArrayInt(int* array, int size){ // 배열에 저장한 숫자들을 반대로 뒤집는 함수
	int temp;
 
	for(int i =0; i<size/2; i++){
		temp = array[i];
		array[i] = array[(size-1)-i];
		array[(size-1)-i] = temp;
	}
}

여기가 문제의 이미지

	i =0; // 허어, i를 0으로 두셨군요.
	while(i){ // while문이 한 번이라도 실행이 될까요?
		printf("%d ", a[i]);
	}