Dentro de la función int cifras() tienes el while así:
while (num1 / 10 > 0||num1/10==0)
Cuando num1 sea un número de un solo dígito el resultado será 0, la sentencia num1/10==0 hará que el bucle se repita y 0/10 = 0, por tanto estarás en un bucle infinito.