== Input ==

1
2
20
99
0

== Output ==
1: 1 i, 0 v, 0 x, 0 l, 0 c
2: 3 i, 0 v, 0 x, 0 l, 0 c
20: 28 i, 10 v, 14 x, 0 l, 0 c
99: 140 i, 50 v, 150 x, 50 l, 10 c

codice:
#include <iostream>
using namespace std;



int main() {
	int cont=0;
	int numero;

	int dim= 5;

	const int N[5]={1, 5, 10, 50, 100};
	const char R[5]={'I', 'V', 'X', 'L', 'C'};



	cout<<"numero"<<endl;
	cin>>numero;

	while(numero > 0 && numero <= 100)
	{
	for(int i=0; i<dim; i++)
	{
		cont=0;
		if(numero / N[dim-1-i] < 1)

			cout<<cont<<R[dim-1-i]<<endl;

		else if(numero / N[dim-1-i] >= 1)
			{
			
			cont=numero / N[dim-1-i];
		cout<<cont<<R[dim-1-i]<<endl;
		numero= numero - (cont *  N[dim-1-i]);
			}


	}

	}




	return 0;
}
Funziona con tutti i numeri che gli do, tranne per i numeri che cominciano con 4 e 9... 24, 44 , 49, 99.....

Io non baderei agli input ed output..sono sbagliati di grossissimo o no?