conversion chiffre en lettre - C - Programmation
Marsh Posté le 31-05-2008 à 17:33:47
Il manque quelques instructions break, mais cela n'explique pas le zéro.
Si c'est un programme 16-bit, alors un entier signé doit être inférieur à deux puissance quinze.
A part ça, j'ai fait un test chez moi avec x=12345; et ça marche.
N.B. Sur ce forum, il faudrait mettre le programme entre deux balises [code ] et [/code] pour que cela soit plus lisible.
En C, on a l'habitude de placer le main() à la fin.
Le nom des variables est mal choisi, ce qui rend la lecture difficile. Par exemple le nom c est habituellement utilisé pour un simple caractère, pas pour une chaine de cararctères. Pour celle-ci on usilisera plus volontiers s. Mais de toutes manières, les noms de variables trop courts ne sont pas à conseiller. Le nom "lettre" peut faire penser à une seul lettre au lieu d'un ensemble de lettres. Pour chiffre on s'attend aussi à un seul chiffre au lieu d'un nombre. A la place, on aurait put choisir num_int et num_str.
Il est recommandé de mettre des espaces autour du signe moins pour éviter que l'on pense qu'il y aurait une variable contenant un tiret au lieu de voir un signe moins entre deux variables. Il est recommandé de mettre un espace après chaque virgule et après chaque point virgule, comme on le fait en français. En graphologie, ceux qui écrivent très serré sont considérés comme étant des radins. Il vaut mieux être un peu généreux.
Au lieu de passer x par adresse, il aurait été préfèrable de la passer par valeur, car sinon on s'attend à ce qu'il soit modifié, ce qui n'est pas le cas.
Il faudrait mieux indenter le programme.
Marsh Posté le 31-05-2008 à 17:59:45
Citation : SVP aidez moi je dois utiliser ce code dans un TP de mon prof. |
Et il est demandé quoi exactement dans ton TP?
A+,
Marsh Posté le 31-05-2008 à 18:27:39
gilou a écrit :
Et il est demandé quoi exactement dans ton TP? |
A copier-coller un code tout fait sur internet
Marsh Posté le 31-05-2008 à 18:55:58
Voila, parce que la solution donnée la est loin d'être optimale, sauf si on a en entrée une donnée numérique. Mais si on demande a rentrer la valeur a un utilisateur, il est bien plus simple de garder le tout comme une chaine composée de chiffres, et de traiter le tout par bloc de 3 chiffres.
A+,
Marsh Posté le 12-06-2008 à 13:56:50
Slt, est-ce que quelqu'un a un algo plus simple que cela et qui marche?
merci!
Marsh Posté le 12-06-2008 à 14:53:34
Tu n'as pas du bien lire le reglement du forum:
On peut t'aider a trouver les causes d'erreurs de tes programmes, mais on ne t'aidera pas pour faire un programme a ta place.
Pour l'algo, je t'avais d'ailleurs détaillé en MP les principes d'une solution:
Citation : L'algo le plus simple que je voie: |
A+,
Marsh Posté le 12-06-2008 à 15:11:43
gilou a écrit :
|
Plus simple pour calculer le nombre de digits d'un nombre sans passer par une chaîne de caractères :
Code :
|
(nécessite math.h)
Ensuite, tout comme gilou a dit (division par trois, unités, etc.)
Marsh Posté le 12-06-2008 à 15:38:26
floor +1 c est pas un peu comme ceil ?
Marsh Posté le 12-06-2008 à 15:44:16
Marsh Posté le 13-06-2008 à 08:28:34
mIRROR a écrit : floor +1 c est pas un peu comme ceil ? |
Si je me souviens bien :
floor(1) + 1 = 2
ceil(1) = 1
Marsh Posté le 13-06-2008 à 10:21:41
Ah oui tiens, je n'ai considéré que les nombres flottants quand j'ai cherché une faille dans le raisonnement de mIRROR, j'ai bêtement oublié de penser ce que ça pouvait donner avec un entier.
Marsh Posté le 14-06-2008 à 00:56:39
j ai pas trop reflechi non plus mais stait essentiellement pour la boutade hein
Marsh Posté le 31-05-2008 à 13:36:28
Slt ,voici un programme que j'ai eu sur le net qui était ecris en c++ et que moi j'ai traduit en C.Lors de l'éxécution de ce programme il m'affiche toujours :En lettre çe fait:ZERO ;
voici le code:
SVP aidez moi je dois utiliser ce code dans un TP de mon prof.
D'avance merci!
Message édité par gilou le 31-05-2008 à 17:58:18