Conversion (chiffres en lettres)
Fermé
pocaontace
Messages postés
2
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
2 juin 2005
-
1 juin 2005 à 22:00
alex07 - 1 avril 2008 à 14:49
alex07 - 1 avril 2008 à 14:49
A voir également:
- Conversion (chiffres en lettres)
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- 100 € en lettres - Forum Réseaux sociaux
- Mon clavier n'écrit plus les lettres ✓ - Forum Clavier
- Numéro allemand 11 chiffres - Forum Mobile
5 réponses
pocaontace
Messages postés
2
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
2 juin 2005
5
2 juin 2005 à 13:59
2 juin 2005 à 13:59
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
//--------------------------------------------------------------------
// 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
Armojax
Messages postés
1858
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
22 mars 2024
1 528
2 juin 2005 à 09:25
2 juin 2005 à 09:25
.../...
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
http://perso.orange.fr/gerard.g/logi/excel/excel.htm
Armojax
Messages postés
1858
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
22 mars 2024
1 528
2 juin 2005 à 08:52
2 juin 2005 à 08:52
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
2 juin 2005 à 17:21
Désolé aussi, mais je ne pratique pas couramment le C.
Ajx.