Răspuns :
#include <iostream>
using namespace std;
int main(){
long n,cif=1;
//Citeste nr
cin >> n;
//Determina puterea lui 10 care are numar egal de cifre cu n
while(cif<=n)cif*=10;
cif/=10;
//Determina componente
int prim = n/cif;
int doi = n/(cif/10)%10;
int mijloc = (n-prim*cif-doi*(cif/10))/100;
int penultima = (n%100)/10;
int ultima = n%10;
//Construieste numarul cerut
cout << prim << penultima << mijloc << doi << ultima;
}
Nota : Solutia este una simpla, usor de inteles si nu functioneaza pentru integ setul de date de intrare (mai ales cand nu exista valori intre a doua si penultima cifra ori exista cifre nule). O rezolvare bazata pe vectori ar futea fi mult mai robusta si ar putea rezolva limitarile acestei solutii. Pe exemplul dat solutia functioneaza perfect, dupa cum poti vedea in imagine.