Salve, dovrei scrivere un codice che sia grado di leggere un numero imprecisato di numeri dallo standard input e calcolare il prodotto dei numeri letti fino a che viene letto il numero 36. A questo punto il programma termina e stampa il risultato.

Nel codice seguente il problema è che, nonostante inserisca il valore 36, non mi viene stampato il risultato dei numeri moltiplicati (credo che, non terminando il ciclo do/while, non venga proprio eseguita l'istruzione), e il programma continua a farmi inserire valori all'infinito.

Sapreste dirmi dov'è che sbaglio?

Grazie in anticipo.

codice:
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <cstring>


int main () {
    
int prodotto_dei_numeri, i;

do    {
     
     printf("Inserire un valore intero che sia maggiore o uguale di zero \n"); 
        
    scanf("%d", &i);    
    
    prodotto_dei_numeri=1;

    i++;
    
    prodotto_dei_numeri=prodotto_dei_numeri*i;
    
    }
    
    while (i!=36);        
    
printf("Il prodotto dei numeri inseriti e': %d \n", prodotto_dei_numeri);


system ("PAUSE"); 


return 0;


}