w120
Messages postés5Date d'inscriptionvendredi 25 décembre 2009StatutMembreDernière intervention 1 janvier 2010
-
31 déc. 2009 à 13:57
w120
Messages postés5Date d'inscriptionvendredi 25 décembre 2009StatutMembreDernière intervention 1 janvier 2010
-
31 déc. 2009 à 14:01
salut les gar.
j'ai essayé d'ecrire une fonction qui permet de convertir en toutes lettres un montant donnés sous forme d'un double mais j'ai pensé vue la longueur de mon script que c'est vraiment bète et nécessite d'optimisation mais bon puisque chui débutaant je me tolère.
le probleme c'est que j'arrive pas a avoir une fonction qui fonctionne correctement car par exemple si je saisis le montant 120
la fonction me retourne cent et quatre vingt!!!
j'ai revisé mon code sans trouver le fuit j'espere que vpous m'aider d'une part a rectifier la mienne et d'autres part de me donner si c'est possibles des idées pour optimiser et merci d'avance.
voici le code:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MONTANT_max 999999999.999 //declaration du montant maximal
/*fonction d'initialisation des chaines*/
void init_chaine(char*t , int n,char c)//t est la cahine a initialisé de taille n
// c est le caractere qu'avec la chaine sera initialisé
{
int i;
i=0;
while (i<n)
{
t[i]='c';
i++;
}
}
void makezero(char*t , int n)
{
int i;
for(i=0;i<=n;i++)
{
if (t[i]==' ')
t[i]='0';
}
}
/*foction convert qui permet de convertir un entier en son equivalent en lettre*/
void convert(char x , char*convx)
{
switch (x)
{
case '0':
sprintf(convx,"zero");break;
case '1':
sprintf(convx,"un");break;
case '2':
sprintf(convx,"deux");break;
case '3':
sprintf(convx,"trois");break;
case '4':
sprintf(convx,"quatre");break;
case '5':
sprintf(convx,"cinq");break;
case '6':
sprintf(convx,"six");break;
case '7':
sprintf(convx,"sept");break;
case '8':
sprintf(convx,"huit");break;
case '9':
sprintf(convx,"neuf");break;
}
}
/*fonction qui permet de convertir en lettre un bloc de chiffres*/
void convert_bloc(char* bloc, char*R)
{
char Sa[10];char Sb[10];char Sc[10];
char a=bloc[0],b=bloc[1],c=bloc[2];
convert(a,Sa);
convert(b,Sb);
convert(c,Sc);
if(a!='0')
{