Puoi prendere un array di dimensione massima n (dove n è il numero massimo di elementi che hai scelto per il tuo array). Inizializzare l' array con un valore che non utilizzi, ad esempio -1. Una volta inizializzato l' array prendi il numero ed in un corpo while lo dividi per 10 e il resto lo assegni alla posizione i-ma dell' array. Dal momento che i valori saranno nell' ordine inverso rispetto a quello iniziale (ad esempio se hai 1234 ottieni nell array a[0] = 4, a[1] = 3, ...) in un ciclo while stamperai i valori da n-1 a i >= 0. Per conoscere il numero di cifre usi una variabile di tipo int che, nel ciclo while in cui stampi le cifre dell' array, aumenti di 1 se l'elemento dell' array è diverso da -1.
Codice PHP:
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int main()
{
int a[MAX];
int num = 0;
int i = 0, count = 0;
printf("Inserisci un intero: \n");
scanf("%d", &num);
while(i < MAX){
a[i] = -1
i++;
}
i = 0;
while(num != 0 && j < MAX){
a[i] = num % 10;
num = num / 10;
i++;
}
i = MAX - 1;
while(i >= 0){
if(a[i] != -1)
{
printf("%d", a[i]);
count++;
}
i++;
}
printf("\nIl numero è formato da cifre: %d", count);
return 0;
}