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