Ciao a tutti,
Volevo chiedere a qualcuno più esperto di me se mi può aiutare a risolvere questo esercizio:
L utente deve inserire due numeri interi positivi A e B, composti da un numero arbitrario di cifre (non necessariamente il medesimo per ambedue) e memorizzati, cifra per cifra, all'interno di due array separati.
Quindi bisogna scrivere un programma che esegue l addizione in colonna di A e B utilizzando un altro array per memorizzare cifra per cifra il risultato.
Esempio:
| | |5|6|5|4|
| | | |2|3|8|
Risultato:
| | |5|8|9|2|
Al termine dell'addizione, il programma dovrà visualizzare sia gli array relativi agli operandi che quello relativo al risultato dell'addizione.
I numeri a, b e il risultato della loro somma devono essere memorizzati, cifra per cifra, in array separati. Gli array devono essere popolati scomponendo due numeri inseriti dall'utente (usando questo metodo
int n, i, j;
int array[MAX_SIZE];
int cifre;
printf("Inserire il valore di n: ");
scanf("%d", &n);
///determina il numero delle cifre
cifre = log10(n) + 1;
///scompone il numero e lo memorizza nell'array
for (i=0; i < cifre; i ++)
array[i] = (n % (int)pow(10, i+1))/pow(10,i);
///stampa l'array elemento per elenmeto
for (i=cifre-1; i >= 0; i --)
printf("%d ", array[i]);;
Gli input devono essere verificati, ossia a e b devono essere positivi (maggiori di zero) e devono poter essere memorizzati nei rispettivi array interamente. La somma va calcolata come se si stesse lavorando manualmente, cifra dopo cifra; NON è considerata una soluzione valida quella in cui vengono ricalcolati i valori originali di a e b, ne viene eseguita la somma e successivamente questa viene scomposta e memorizzata nell'array corrispondente. Il programma deve funzionare correttamente anche nel caso in cui a e b non abbiano il medesimo numero di cifre.
Se possibile, mi aiuterebbe di più se usaste funzioni base del C visto che non sono ancora esperto.