Olá Eliabe!
Quanto ao printf travar (aparecer após cada iteração do loop), se deve a uma linha de código que parece estar sobrando.
Remova a linha printf("%d\n", a, i, times);, que está abaixo da linha i = i + 1;, que isso não vai mais acontecer.
Quanto a segunda dúvida, não ficou muito claro o que realmente está acontecendo. Mas se eu entendi direito, na linha que vai mostrar o resultado, você pode modificar o código para ficar assim:
printf("%d x %d = %d\n", a, i, (i * a));
Com isso, a multiplicação entre iea entrará no terceiro valor de %d eliminando assim a necessidade da variável times.
Espero ter ajudado! Bons estudos!