Conversion de chiffres en lettres

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 437 fois - Téléchargée 34 fois

Contenu du snippet

ce code convertis un unsigned long int a son correspondant en lettre.
ex:
123456
cent vingt trois mille quatre cent cinquente six

Source / Exemple :


#include <stdio.h>
#include <conio.h>
#include <string.h>

void convert3(int x)
{
char inf20[20][8]={"","un","deux","trois","quatre","cinq","six","sept","huit","neuf","dix","onze","douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf"};
char dixaines[8][12]={"","dix","vignt","trente","quarente","cinquente","soixante","quatre-vignt",};

if(x>=100)
{
	if((x/100)!=1)
	{
		printf("%s",inf20[x/100]);
		printf(" ");
	}
	printf("cent");
	if(((x%100)==0)&&((x/100)!=1))
		printf("s");
	printf(" ");
}
if((x%100)<20)
	printf("%s",inf20[x%100]);
else
{
	if(((x%100)>=20)&&((x%100)<=60))
	{
		printf("%s",dixaines[(x%100)/10]);
		printf(" ");
		if(((x%100)%10)!=1)
			printf("%s",inf20[(x%100)%10]);
		else
			printf("et un");
	}
	if(((x%100)>=60)&&((x%100)<=79))
	{
		printf("%s",dixaines[6]);
		printf(" ");
		if(((x%100)%10)!=1)
			printf("%s",inf20[(x%100)-60]);
		else
			printf("et un");
	}
	if(((x%100)>=80)&&((x%100)<=99))
	{
		printf("%s",dixaines[7]);
		printf(" ");
		if(((x%100)%10)!=1)
			printf("%s",inf20[(x%100)-80]);
		else
			printf("et un");
	}
}

}

void main()
{
int               i,j,nb3[4];
unsigned long int nb;

clrscr();
printf("Donner le nombre ? convertir:");
scanf("%lu",&nb);

if(nb==0)
	printf("z?ro");
else
{
	i=0;
	do
	{
		nb3[i]=nb%1000;
		nb=nb/1000;
		i++;
	}
	while(nb!=0);

	for(j=i-1;j>=0;j--)
	{
		convert3(nb3[j]);
		printf(" ");
		if((j+1)==4)
			printf("milliard");
		if((j+1)==3)
			printf("million");
		if((j+1)==2)
			printf("mille");
		printf(" ");
	}
}

getch();
}

A voir également

Ajouter un commentaire Commentaires
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
non non là j'arrete....c'est lassant a la fin ....

Oh et pis un dernier pour la route:

10 000 000 = dix million mille ! et oui
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
Et bien d'autres !

pour 10 000 000 000:

un milliard quatre cent dix million soixante cinq mille quatre cent huit !!!! hey hey! tant que ca! ^^

Amusant non !?
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
Oula encore plus fort !!!

Pour :632 123 456 789 :

sept cent soixante trois million deux cent soixante quatre mille deux cent soixante

Je suis septique là...
Un peu baclé quand meme!
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
sympathique comme prog!

Je signale un bug tout de meme :

pour 1293 par exemple il m'ecrit:

un mille deux cent quatre-vingnt treize

et pis en plus ya pas de "s" a cent et "vignt" n'existe pas !
Tu l'as pas vu celle la MoDDiB ! je t'es grillé! ^^
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
4 mai 2007
1
Faire une faute a une liaison ou encore a un "à" n'est vraiment pas un soucis ....Mais "quarente" je me dis qu'il y a un problème....Tout le monde débute ce n'est pas une raison pour pardonner certaine chose...Ce que tu as voulu faire peut etre très intéressant si il est bien traité surtout d'un point de vue de l'orthographe or si tu n'attache même pas d'importance a cinquante je vois mal comment la suite pouvait s'intéresser aux accords ...
J'ai simplement été décu en voyant la source : tu aurais du indiquer dès le début que tu attendait de l'aide !
Afficher les 8 commentaires

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.