C

Hicham -  
mamiemando Messages postés 34243 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour
Je cherche un programme en C qui permet de traduire un nombre en chaine .
Exemple: 1450,33 ==> mille quatre cents cinquante et trente trois centimes
Merci de m aider

2 réponses

mounir234 Messages postés 183 Statut Membre 12
 
slt
la methode et la suivante :
ca va se realiser avec des switch de chaque chifres avec des tableaux de chaine de caractéres ex:
switch (x){
case 0 : ....;
.
.
.
default : ...;
}
mais ca va te demander un temp hyper grand pour lui faire la difference si 0 se situe dans les millier les centaines les dizens .
mais si qq1 a une autre methode plu simple sa serai plu efficasse.
0
vlmath Messages postés 833 Statut Contributeur 160
 
Il n'y a pas besoin de faire un switch() pour chaque caractère du tableau, si tu veux utiliser un tableau.

Il te "suffi" de faire une boucle qui va lire le tableau, caractère par caractère, mettre le chiffre en lettre (grâce à un switch() ), puis ajouter le nom de la puissance de 10 (dix, cent, mille, million, ...).
0
mamiemando Messages postés 34243 Date d'inscription   Statut Modérateur Dernière intervention   7 898
 
vlmath : non
exemple : 84 => "quatre vingt quatre"
On ne veut pas que ca écrive "huit" "quatre".



Malheureusement à part faire un switch bourrin il n'y a pas vraiment de solution intelligente opur les chiffres de 1 à 100. Tu peux agréger certaines choses mais pas tant que ça (genre traiter_dizaine, traiter_unité) pour les chiffres compris entre 20 et 100.

Pour les nombre supérieurs à 100 il faut faire des paquets de trois chiffres et coller le suffixe (million(s), milliard(s), mille...) qui va bien. Exemple :
83 435
83 mille 435
quatre-vingt trois mille quatre cent trente-cinq

Pas très captivant tout ça :s
0