Rekurzivna funkcija

zdravo moze li pomoc sa ovim zdatkom:
potrebno je od cifara datog broja n formirati najveci moguci broj.
zadatak je potrebno uraditi preko rekurzivnih funkcija, ja sam pokusao ovako ali iz nekog razloga ne radi
#include<iostream>

using namespace std;

int f9(int n, int c)

{

if(n%10==c) return n/10;

else return n%10+f9(n/10,c)*10;

}

void blok(int n,int m,int &br)

{

if(n!=0)

{

if(n%10>m) m=n%10;

blok(n/10,m,br);

br=br*10+m;

blok(f9(n,m),0,br);

}

}

int main()

{

int n,br=0,m=0;

cin>>n;

blok(n,m,br);

cout<<br;

}