Les fonctions en C

Fermé
bazalla Messages postés 3 Date d'inscription lundi 4 mars 2013 Statut Membre Dernière intervention 5 mars 2013 - 4 mars 2013 à 20:39
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 5 mars 2013 à 23:54
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
4 mars 2013 à 23:13
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
4 mars 2013 à 23:55
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 lundi 4 mars 2013 Statut Membre Dernière intervention 5 mars 2013
5 mars 2013 à 18:16
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
5 mars 2013 à 23:54
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