Una cosa sobre la propuesta B:
Código C++:
Ver originalprintf("Introduce la dimension:"); printf("Introduce un numero:");
//Declaración del vector
int vector[dimension];//<< quiero comentar esto
//En la primera posición del vector almacenamos el primer dígito las uidades
vector[0] = numero %10;
temporal = numero /10;
Y como sabes si la aplicacion pudo bloquear memoria suficiente para el vector de 'dimension' enteros? Creo haber leido por ahi algo acerca de los arrays de dimension variable que fueron aceptados en C, propuestos en C++ pero finalmente se desestimo la idea aun cuando algunos compiladores permitieron su uso, lo pongo de memoria sería cuestion de buscar.
Alternativamente puedes usar 'new' y 'delete', o un objeto 'vector' (o lista o lo que quieras).
Otra cosa, usa 'getchar()' en vez de 'getch()' :)
Saludos
vosk