Hai ragione scusami
Questo è quello che sono riuscito a fare io per ora. Purtroppo però cosi facendo sto riutilizzando l array_a e nn va bene. Inoltre se sommo un numero di 2 cifre con uno di 3 cifre una mi viene come mangiata.
#include <stdio.h>
#include <math.h>
#define MAX_SIZE 10
int main () {
//dichiarazione variabili
int a, b; //2 numeri inseriti dall utente
int array_a [MAX_SIZE];
int array_b [MAX_SIZE];
int risultato [MAX_SIZE]; //array per la memorizzazione del risultato
int i, cifre;
do {
//input
printf ("Inserire il valore di a: ");
scanf("%d", &a);
printf ("Inserire il valore di b: ");
scanf("%d", &b);
}
while (a <= 0 || b <= 0);
//determina il numero delle cifre
cifre = log10(a) + 1;
//scompone il numero a e lo memorizza nell'array
for (i = 0; i < cifre; i ++)
array_a[i] = (a % (int)pow(10, i+1))/pow(10,i);
//stampa l'array_a elemento per elemento
for (i = cifre-1; i >= 0; i --)
printf("%d ", array_a[i]);
printf("+\n");
//scompone il numero b e lo memorizza nell'array
for (i = 0; i < cifre; i ++)
array_b[i] = (b % (int)pow(10, i+1))/pow(10,i);
//stampa l'array_b elemento per elemento
for (i = cifre-1; i >= 0; i --)
printf("%d ", array_b[i]);
printf("=\n");
for(i = 0; i < MAX_SIZE; i++ ){
risultato[i] = array_a[i] + array_b[i];
if (risultato[i] > 9)
{
risultato[i] %=10;
array_a[i+1]++;
}
}
//determina il numero delle cifre del risultato
cifre = log10(a) + 1;
//scompone il risultato e lo memorizza nell'array
for (i = 0; i < cifre; i ++)
array_a[i] = (a % (int)pow(10, i+1))/pow(10,i);
//stampa il risultato elemento per elemento
for (i = cifre-1; i >= 0; i --)
printf("%d ", risultato[i]);
printf("\n");
return 0;
}