C'è l'ho fatta

ora vorrei sapere cosa intendevi con ciclo perché col while mi usciva la "stringa infinita"...
codice:
#include <stdio.h>
#include <stdbool.h>
main()
{
int dec,bin1,bin2,bin3,bin4;
char scelta,s,S;
do
{
printf("--------------------------------------------------------------------------------");
printf("Inserire il numero decimale da convertire in binario:");
scanf("%d",&dec);
{
if(dec%2==0)
{
bin1=0;
dec=dec/2;
}
else
if(dec%2==1)
{
bin1=1;
dec=dec-1;
dec=dec/2;
}
}
{
if(dec%2==0)
{
bin2=0;
dec=dec/2;
}
else
if(dec%2==1)
{
bin2=1;
dec=dec-1;
dec=dec/2;
}
}
{
if(dec%2==0)
{
bin3=0;
dec=dec/2;
}
else
if(dec%2==1)
{
bin3=1;
dec=dec-1;
dec=dec/2;
}
}
{
if(dec%2==0)
{
bin4=0;
dec=dec/2;
}
else
if(dec%2==1)
{
bin4=1;
dec=dec-1;
dec=dec/2;
}
}
printf("%d %d %d %d",bin4,bin3,bin2,bin1);
printf("\n");
printf("Riavviare il programma?\n");
scelta=getch();
}
while((scelta=='s')||(scelta=='S'));
}