Se per caso inserisci 2 e 3,i diventa uguale a 6,poi viene incrementato di uno (=7),e poi viene posto di nuovo uguale a 2*3.Quindi il programma non termina,mentre se inserisci numeri tipo 6 e 7 ti fa la moltiplicazione e il ciclo for temina perche' i non e' <=36.
L' idea di usare i come risultato della moltiplicazione non quadra perche' in pratica ti continua a moltiplicare quei numeri all' infinito e ad assegnarli a i,finche' non diventa >=36,ma 2*3 fa sempre 6.
Io farei cosi':
codice:i=add1*add2; if(i<=36) printf("Il risultato e' %d",i); else printf("Risultato maggiore di 36");