[c unix] nombres en lettres
salut tout le monde,
j'aimerais avoir un peu d'aide pour continuer mon code.
je fais un programme qui traduit les nombres passes en parametre en lettres sans fautes d'orthographe et je suis bloque apres vingt.
j'ai d'abord fait deux fonctions qui gerent les nombres de 0 a 19 et je veux maintenant gerer les nombres entre 20 et 99,avant de passer a 1000 et ainsi de suite.alors, j'ai besoin d'un coup de main sur la maniere de proceder pour y arriver.merci
j'aimerais avoir un peu d'aide pour continuer mon code.
je fais un programme qui traduit les nombres passes en parametre en lettres sans fautes d'orthographe et je suis bloque apres vingt.
j'ai d'abord fait deux fonctions qui gerent les nombres de 0 a 19 et je veux maintenant gerer les nombres entre 20 et 99,avant de passer a 1000 et ainsi de suite.alors, j'ai besoin d'un coup de main sur la maniere de proceder pour y arriver.merci
A voir également:
- [c unix] nombres en lettres
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Chiffre en lettre - Télécharger - Outils professionnels
- Feuille blanche boîte aux lettres - Guide
- Dans le document à télécharger, trouvez les lettres situées derrière les rectangles pour reconstituer le nom du chat. comment s'appelle-t-il ? - Forum InDesign
- Comment taper les lettres sur un clavier téléphonique iphone - Guide
4 réponses
En fait il faut découper le nombre par tranches de trois décimales en partant du "." : ainsi, si l'on sait traité les nombres de à à 999 il est facile de gérer les milliers, les millions etc...
Reste à gérer les nombre de à à 999. Si l'on sait compter de 0 à 99, il est très facile de compter dès lors jusqu'à 999 en rajoutant le bon brefixe pour le chiffre des centaines.
Le problème se réduit donc à traiter les nombres de 0 à 99. Pour les chiffres de 0 à 20, en effet il faut être exhaustif. Pour les suivants, il suffit de regarder le chiffre des dizaines (>2) :
3x -> trente
4x -> quarante
...
Ensuite il suffit de regarder le chiffre des unités pour obtenir le suffixe de ton nombre :
x1 -> -et-un
x2 -> -deux
x3 -> -trois
...
Voire :
x1 -> -et-un
xy -> -y (en faisant appel à la fonction qui convertit à 0<=y<=9 en entier)
Ainsi :
La fin est facile ;-)
Bonne chance
Reste à gérer les nombre de à à 999. Si l'on sait compter de 0 à 99, il est très facile de compter dès lors jusqu'à 999 en rajoutant le bon brefixe pour le chiffre des centaines.
Le problème se réduit donc à traiter les nombres de 0 à 99. Pour les chiffres de 0 à 20, en effet il faut être exhaustif. Pour les suivants, il suffit de regarder le chiffre des dizaines (>2) :
3x -> trente
4x -> quarante
...
Ensuite il suffit de regarder le chiffre des unités pour obtenir le suffixe de ton nombre :
x1 -> -et-un
x2 -> -deux
x3 -> -trois
...
Voire :
x1 -> -et-un
xy -> -y (en faisant appel à la fonction qui convertit à 0<=y<=9 en entier)
Ainsi :
char *to_string_0_9(unsigned int i){
switch(i){
case 0 : return "zero";
case 1 : return "un";
//...
case 9 : return "neuf";
default : break;
}
return "";
}
char *to_string_10_19(unsigned int){
switch(i){
case 10 : return "dix";
case 11 : return "onze";
//...
}
return ""
}
char *to string_20_99(unsigned int i){
char buf[255];
unsigned int unite,dizaine=floor(i/10);
if (dizaine > 9 || dizaine <2 ) return "";
int unite=i-dizaine*10;
switch(dizaine){
case 3 : buf="trente"
//...
}
switch(unite){
case 1 : strcat(buf,"-et-un");
case 2 : strcat(buf,"-deux");
//...
}
return &buf[0]; //enfin je crois
}
char *to_string_0_99(unsigned int){
if (0<=i && i<9) return to_string_0_9(i);
else if (10<=i && i<19) return to_string_10_19(i);
else if (20<=i && i<99) return to_string_20_99(i);
else return "";
}
La fin est facile ;-)
Bonne chance
a mon avis tout ses fonctions c'est pour compliquer les choses
parceque a chaque nombre est associer une phrase unique
1: un
2:deux
/
/etc
je pense que c'est mieux de faire entrer tout les phrases associer aux nombres "un, deux trois , ..."
idées de ++++
parceque a chaque nombre est associer une phrase unique
1: un
2:deux
/
/etc
je pense que c'est mieux de faire entrer tout les phrases associer aux nombres "un, deux trois , ..."
idées de ++++