Convertisseur nombre arabe en nombre romain

Description

voici un petit programme qui transcris un nombre arabe en nombre romain.

explications :
on vérifie si le nombre entré est supérieur ou égal au plus grand nombre romain (M), si oui, on lui
soustrait la valeur associée,si non on teste la valeur suivante (CM) etc jusqu'à I.
la boucle s'arrête donc quand le nombre à convertir = 0

par exemple : 47, plus grand que 40 donc on écrit XL, on fait 47-40= 7, plus grand que 5, on ecrit V, on fait 7-5, etc jusqu'à atteindre 0.

Source / Exemple :


#include <iostream>

using namespace std;

int main() {

	int arab[13]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
	char *roman[13]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
	int i=0;
	int dec=0;

cout<<"entrez un nombre en chiffres arabes compris entre 1 et 3999"<<endl;
cin>>dec;

	while(dec<1 || dec>3999){
		cout<<"vous depassez les limites du raisonnable !"<<endl;
		cout<<"entrez un nombre en chiffres arabes compris entre 1 et 3999"<<endl;
		cin>>dec;
	}

		while(dec!=0) {

			while(dec>=arab[i]){         
				dec=dec-arab[i];
				cout<<roman[i];
		}

			i++;

		}

cout <<"\n";

return 0;
}

Conclusion :


voila, dite moi si il y a des choses que je peux améliorer.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.