Pues la idea general creo que podria ser:
1- Declarar un vector de char con cada simbolo romano ordenado de mayor a menor y otro vector de int con cada valor numerico de los simbolos.
2- Hacer una funcion que compare el numero dado con los valores numericos que tienes en el segundo vector empezando por el mayor. Cuando encuentres un valor que puedas restarlo, hazlo y pones el simbolo romano correspondiente a ese valor.
3- Tienes que tener en cuenta que no puedes repetir mas de 3 veces el mismo simbolo. Asi que, tendras que ir guardandote la informacion y mostrarla solo cuando cuando sepas que no se repite mas de 3 veces o cambiarlo por la forma correcta si se repitiera.
Ej.
Num 400.
Como maximo le puedes restar 100.
400 - C (la C sin mostrar aun, solo guardada).
300 - CC
200 - CCC
100 - Aqui ves que tocaria otra C, pero como llevabas 3 tienes que cambiar esas 3 C por un simbolo superior (D) y seguir normal (ademas, ya puedes mostrarlo)
100 - DC
0 Ya esta!
Empieza con el codigo y te vamos ayudando mejor.
Saludos!