|
|
|
|
Bonjour pocaontace,
A tout hasard : il y a une solution au n° 2 de ce poste : http://www.commentcamarche.net/forum/affich-1451038-procedure-en-VBA Bien sûr, ce n'est pas en C, c'est du VBA, mais ça peut peut-être fournir une trame ? Bonne journée. Ajx. |
|
.../... |
|
dzl ça diffère completement du c , voilà j'ai un prog en c mais je l'ai pas bien compris :#include<stdio.h>
//-------------------------------------------------------------------- // Conversion d'un nombre de 3 chiffres en lettres //-------------------------------------------------------------------- void Nombre3EnLettres(int n3, int cardinal) { static char *unite[] = { "", "UN ", "DEUX ", "TROIS ", "QUATRE ", "CINQ ", "SIX ", "SEPT ", "HUIT ", "NEUF ", "DIX ", "ONZE ", "DOUZE ", "TREIZE ", "QUATORZE ", "QUINZE ", "SEIZE ", "DIX-SEPT ", "DIX-HUIT ", "DIX-NEUF " }; static char *dizaine[] = { "", "", "VINGT", "TRENTE", "QUARANTE", "CINQUANTE", "SOIXANTE", "SOIXANTE-DIX", "QUATRE-VINGT", "QUATRE-VINGT-DIX" }; int nb_centaine = n3 / 100; int nb_dizaine = (n3 - (nb_centaine * 100)) / 10; int nb_unite = n3 - nb_centaine * 100 - nb_dizaine * 10; if(nb_centaine > 0) { if(nb_centaine > 1) printf("%s", unite[nb_centaine]); if(cardinal || nb_dizaine || nb_unite || (nb_centaine == 1)) printf("CENT "); else printf("CENTS "); } switch(nb_dizaine) { case 0: printf("%s", unite[nb_unite]); break; case 1: printf("%s", unite[nb_unite + 10]); break; case 7: printf("%s", dizaine[6]); if(nb_unite == 1) printf(" ET "); else printf("-"); printf("%s", unite[nb_unite + 10]); break; case 8: printf("%s", dizaine[8]); if(nb_unite == 0) if(cardinal) printf(" "); else printf("S "); else printf("-"); printf("%s", unite[nb_unite]); break; case 9: printf("%s-%s", dizaine[8], unite[nb_unite + 10]); break; default: printf("%s", dizaine[nb_dizaine]); if(nb_unite == 0) printf(" "); if(nb_unite == 1) printf(" ET "); if(nb_unite > 1) printf("-"); printf("%s", unite[nb_unite]); break; } } //-------------------------------------------------------------------- // Conversion d'un nombre en lettres [1 -> 999999999] //-------------------------------------------------------------------- void NombreEnLettres(long n) { int nb_million, nb_millier, nb_unite; if(n < 1e9) { nb_million = n / 1e6; nb_millier = (n - (nb_million * 1e6)) / 1e3; nb_unite = n - nb_million * 1e6 - nb_millier * 1e3; Nombre3EnLettres(nb_million, 0); switch(nb_million) { case 0: break; case 1: printf("MILLION "); break; default: printf("MILLIONS "); break; } switch(nb_millier) { case 0: break; case 1: printf("MILLE "); break; default: Nombre3EnLettres(nb_millier, 1); printf("MILLE "); break; } Nombre3EnLettres(nb_unite, 0); } else printf("Nombre trop grand !"); } //-------------------------------------------------------------------- int main(void) { long n = 0; do { printf("\nEntrez un nombre [1->999999999] [0 pour quitter]: "); scanf("%ld", &n); printf("\n"); NombreEnLettres(n); printf("\n"); } while(n != 0); return 0; } si vous pouvez m'aider à le comprendre n'hezitez pas J'ai enormement besoin de votre aide
|
tu peux télécharger une macro qui permettra la conversion des nombres en lettres.
http://perso.orange.fr/gerard.g/logi/excel/excel.htm |
il me faudarit le même programme mais en scheme |
Résultats pour conversion (chiffres en lettres)
Résultats pour conversion (chiffres en lettres)
Résultats pour conversion (chiffres en lettres)
Résultats pour conversion (chiffres en lettres)
Résultats pour conversion (chiffres en lettres)
Résultats pour conversion (chiffres en lettres)