Les fonctions en C

bazalla Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,


j'ai un problème ,je ne sais pais comment écrire une fonction qui permet de retourner le chiffre de poids fort d'un nombre réel passé en paramètre.Merci d'avance pour vos réponses

3 réponses

Utilisateur anonyme
 
Bonjour

Par exemple, j'utiliserais sprintf pour traduire le nombre en une suite de caractères, puis je balayerais cette suite jusqu'à ce que je trouve un chiffre non nul (s'il y en a un)
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Tu as deux façons de faire.
1/ Tu convertis en chaîne de caractères et tu prends le premier. Mais bon, s'il s'agit d'un exercice, t'auras 0 à mon avis ^^.
2/ Tu fais un algorithme pour déterminer le premier chiffre.
C'est un exercice intéressant. Alors, ça m'embête de te donner la solution.
Je te donne une piste plutôt :
Tu as 56, comment faire pour obtenir le 5 ?
Tu fais : (56 - 6) / 10 = 5. 6 tu l'obtiens en faisant 56 % 10 (modulo).
Pour 123 :
(123 - 123%10) / 10 = 12
Puis on refait sur 12 : (12 - 12%10) = 1
Tu as bien compris, il y a une boucle while à faire ;-).
Bon courage,
0
bazalla Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
j'ai pas bien saisie ce que vous avez dis ,je suis encore débutante sachant que je dois utiliser la fonction de la valeur absolue et la fonction de la partie entière.Merci encore pour vos réponses.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
T'aurais dû commencer par nous expliquer que tu devais utiliser les fonctions valeur absolue et partie entière. Ca évite qu'on se "casse la tête" à donner une solution "hors sujet"...
Bref comme je te disais, je te donnerai pas la réponse toute cuite. A toi de comprendre le mécanisme pour répondre à ton exercice :
Si le nombre était 12. Pour récupérer le poids fort (1), tu ferais 12/10.0 = 1.2 et tu prendras la partie entière de 1.2 pour récupérer le 1. Facile.
Pour 123, tu divises par 10.0. Tu obtiens 12.3, tu redivises par 10 tu obtiens 1.23. La partie entière donne 1.
Donc l'algorithme est : je divise par 10.0 jusqu'à obtenir un nombre < 10. Et tu prends la partie entière.
D'ailleurs, il n'y a même pas besoin de la partie entière puisque 123/100 donne 1 en C (division d'entiers).
0