Ciao,
ho sistemato il codice modificando l'implementazione della funzione come mi ha suggerito @ZioLuffio
codice:
#include<stdio.h>
int numin(int[], int);
int main()
{
    int num[1000], i=0, op=0;
    printf("Inserisci una sequenza di numeri interi positivi\n");
    printf("Per terminare inserisci un numero maggiore di 9\n");
    do 
    {
        printf("\nInserisci il %d%c numero:", i+1, 167);
        scanf("%d", &num[i]);
        while(num[i]<0)
        {                                 
                  printf("Il numero inserito '%d' non e' corretto perche' e' minore di zero\n", num[i]);
                  printf("Inserisci nuovamente il %d%c numero", i+1, 167);
                  scanf("%d", &num[i]);
        }
    }
    while(num[i++]<=9);
    printf("Il risultato e\':%d\n", numin(num,i));
    system("pause");
    return 0;
}
//Implementazione della funzione che restituisce il numero intero ottenuto affiancando le cifre
int numin(int n[], int tot)
{
    int somma=0, i;
    for(i=0; i<tot; i++)
    {
        somma *= 10;
        somma += n[i];
    }
    return somma;
}
Nel main dopo aver inserito il 5° valore (che è maggiore di 10) incrementi lo stesso i anche se non dovresti, quindi se hai 4 valore conteggi per 5.
Quindi come dovrei modificare l'implementazione al fine di renderla giusta?

Ciao e grazie