10進数を2進数に変えるプログラムを作りたいんですが、コンパイルは問題なくできるんですが、実行するとエラーが出て終了してしまいます。
何がいけないんでしょうか? なんど読み返してもさっぱりわからんとです・・・ 

#include <stdio.h>

int main(void)
{
int binary[10];
int a,b,t,i;

printf("a:"); scanf("%d",&a);
printf("b:"); scanf("%d",&b);

t = a + b;

for(i=0;i<10;i++)
binary[i]=0;

while(t >= 0){
binary[i] = t % 2;
i--;
t = t / 2;
}

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

printf("\n");
return 0;
}