Ptit probleme

aladdin_wydadi Messages postés 9 Date d'inscription jeudi 19 mai 2005 Statut Membre Dernière intervention 7 juin 2005 - 4 juin 2005 à 14:55
aladdin_wydadi Messages postés 9 Date d'inscription jeudi 19 mai 2005 Statut Membre Dernière intervention 7 juin 2005 - 6 juin 2005 à 22:59
voila le code source ke j'ai trouvé :

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


//--------------------------------------------------------------------
// Conversion d'un nombre de 3 chiffres en lettres
//--------------------------------------------------------------------
void Nom3_en_let(int nb3)
{
char *unite[] =
{
"", "UN ", "DEUX ", "TROIS ", "QUATRE ",
"CINQ ", "SIX ", "SEPT ", "HUIT ", "NEUF ",
"DIX ", "ONZE ", "DOUZE ", "TREIZE ", "QUATORZE ",
"QUINZE ", "SEIZE ", "DIX-SEPT ", "DIX-HUIT ", "DIX-NEUF "
};


char *dizaine[] =
{
"", "", "VINGT", "TRENTE", "QUARANTE", "CINQUANTE",
"SOIXANTE", "SOIXANTE-DIX", "QUATRE-VINGT", "QUATRE-VINGT-DIX"
};



int nb_centaine = nb3 / 100;
int nb_dizaine = (nb3 - (nb_centaine * 100)) / 10;
int nb_unite = nb3 - nb_centaine * 100 - nb_dizaine * 10;


if(nb_centaine > 0)
{
if(nb_centaine > 1)
printf(" %s", unite[nb_centaine]);
if(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)
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;


}


}


void Nom_en_let(long n)
{
int nb_million, nb_millier, nb_unite,nb_milliard;


if(n < 1000000000000)
{
nb_milliard = n /1000000000 ;
nb_million =( n - (nb_milliard * 1000000000)) / 1000000;
nb_millier = (n -( nb_milliard * 1000000000) -( nb_million * 1000000)) / 1000;
nb_unite = n -(nb_milliard * 1000000000)-( nb_million * 1000000) - nb_millier * 1000;


Nom3_en_let(nb_milliard);



switch(nb_milliard)
{
case 0: break;
case 1: printf("MILLIARD "); break;
default: printf("MILLIARDS "); break;
}


Nom3_en_let(nb_million);


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: Nom3_en_let(nb_millier);printf("MILLE ");break;
}


Nom3_en_let(nb_unite);
}
else


printf("le nombre est tr‚s grand");


}



void main()
{ long n = 0;
clrscr () ;


do
{
printf("\n\n Entrez un nombre inf‚rieur ou ‚gale … 2147683534 : ");
scanf("%ld", &n);
if(n!=0)
Nom_en_let(n);
else
printf("\n z‚ro");
}while(n!=0);


getch();


}

8 réponses

sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
4 juin 2005 à 19:11
"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
4 juin 2005 à 22:43
On n'ira pas loin comme cela. [auteurdetail.aspx?ID=514896 aladdin_wydadi], tu pourrais peut être poser ton problème?
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
4 juin 2005 à 22:45
c ce que je voulais dire mon msg etait : et alors ?

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
aladdin_wydadi Messages postés 9 Date d'inscription jeudi 19 mai 2005 Statut Membre Dernière intervention 7 juin 2005
5 juin 2005 à 02:32
regarder les amis j'ai fé une petite erreur j'ai écris mon probléme et je l'ai envoyer sans ajouter le code source alors j'ai envoyer mon code source aprés le probléme c ps gravre .
salut tt le monde j'ai besoin de votre aide ; j'ai trouvé un programmea cppfrance ki a résolut mon probléme c de convetir un nombre en lettres mé je veux encore un otre aide c ke ce programme il conveti ke les entiers; c-a-d jusk'a 2milliard 147 millions...
mé moi je veux jusk'a 99milliards et 999 millions ... alors y a pa de variable entieres ki peux le faire alors il fo ke je lis le nombre komme chaine de caractére et puis; je fais la convertiion mé c ca le probleme aprés la lecture je sais pas comm ent faire j'espére ke vous avez compris mon probléme et ke vous avez une idée ou plusieurs merci d'avance


voila le code source ke j'ai trouvé :

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


//--------------------------------------------------------------------
// Conversion d'un nombre de 3 chiffres en lettres
//--------------------------------------------------------------------
void Nom3_en_let(int nb3)
{
char *unite[] =
{
"", "UN ", "DEUX ", "TROIS ", "QUATRE ",
"CINQ ", "SIX ", "SEPT ", "HUIT ", "NEUF ",
"DIX ", "ONZE ", "DOUZE ", "TREIZE ", "QUATORZE ",
"QUINZE ", "SEIZE ", "DIX-SEPT ", "DIX-HUIT ", "DIX-NEUF "
};


char *dizaine[] =
{
"", "", "VINGT", "TRENTE", "QUARANTE", "CINQUANTE",
"SOIXANTE", "SOIXANTE-DIX", "QUATRE-VINGT", "QUATRE-VINGT-DIX"
};



int nb_centaine = nb3 / 100;
int nb_dizaine = (nb3 - (nb_centaine * 100)) / 10;
int nb_unite = nb3 - nb_centaine * 100 - nb_dizaine * 10;


if(nb_centaine > 0)
{
if(nb_centaine > 1)
printf(" %s", unite[nb_centaine]);
if(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)
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;


}


}


void Nom_en_let(long n)
{
int nb_million, nb_millier, nb_unite,nb_milliard;


if(n < 1000000000000)
{
nb_milliard = n /1000000000 ;
nb_million =( n - (nb_milliard * 1000000000)) / 1000000;
nb_millier = (n -( nb_milliard * 1000000000) -( nb_million * 1000000)) / 1000;
nb_unite = n -(nb_milliard * 1000000000)-( nb_million * 1000000) - nb_millier * 1000;


Nom3_en_let(nb_milliard);



switch(nb_milliard)
{
case 0: break;
case 1: printf("MILLIARD "); break;
default: printf("MILLIARDS "); break;
}


Nom3_en_let(nb_million);


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: Nom3_en_let(nb_millier);printf("MILLE ");break;
}


Nom3_en_let(nb_unite);
}
else


printf("le nombre est tr‚s grand");


}



void main()
{ long n = 0;
clrscr () ;


do
{
printf("\n\n Entrez un nombre inf‚rieur ou ‚gale … 2147683534 : ");
scanf("%ld", &n);
if(n!=0)
Nom_en_let(n);
else
printf("\n z‚ro");
}while(n!=0);


getch();


}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
5 juin 2005 à 09:52
etant debutant je peut pas t'aider mais a mon avis meme convertir un nombre aussi grand ne marchera pas carquoi qu'il arrive ca restera un long ou ce que tu veut ce qu'il faut je croi c definir ton type d'entier

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
5 juin 2005 à 10:02
De toute facons la solution utilisée ici est bête: c'est mieux de
travailler dès le début avec des chaines. Cet exemple lit la chaine, la
transforme en nombre, puis récupères les chiffres un par un.

Tu as juste à remplacer

nb_centaine = chaine[0];

nb_dizaine = chaine[1];

nb_unite = chaine[2];
0
timino Messages postés 4 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 6 juin 2005
6 juin 2005 à 22:47
vraiment merci d'abord pour votre réponse mé malheuresement
0
aladdin_wydadi Messages postés 9 Date d'inscription jeudi 19 mai 2005 Statut Membre Dernière intervention 7 juin 2005
6 juin 2005 à 22:59
merci les amis pour vos répense mé malheuresement j'ai pas résolut mon probléme alors si c possible Mr vecchio56 vous pouvez modifier le code source ke j'ai envoyé avec ce ke t'as dis c-a-d par les chaine et puis tu me l'envois svp car j'ai pas terminer ce projet et il me reste peux de temps ; vraiment la programmation c klk chose d'extraordinaire et casse tête en même temps svp sauvez moi hahaha et merci encore.
0
Rejoignez-nous