Ciao,
devo fare un programma che dato un array di interi, contententi in ogni elemento una cifra, restituisca il numero intero ottenuto affiancando le cifre (es: 4 3 8 1 => 4381).

Io ho scritto questo codice
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, j=1, k=tot;
    while(k!=0)
    {
         j=j*10;
         k--;
    }      
    for(i=0; i<tot; i++)
    {
             somma=somma+(n[i]*j);
             j=j/10;
    }
    return somma;
}
Il problema è che il numero generato ha giuste solo alcune cifre mentre le altre sono sbagliate (es: 1,2,3,4,10[usato per terminare] => 123500)

Ciao e grazie