FRACTION EN LANGAGE C
Résolu
Coucou1504
Messages postés
60
Date d'inscription
Statut
Membre
Dernière intervention
-
Coucou1504 Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
Coucou1504 Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
6 réponses
Purement affichage donc ?
23 / 11
pour un affichage "joli" il faut récupérer le nombre de caractères qu'il faut pour écrire chaque nombre (log 10 du nombre) pour déterminer le nombre d'espaces à insérer devant le plus petit des deux pour qu'ils soient alignés et aussi pour savoir le nombre de caractère à mettre pour dessiner la barre de fraction.
M.
printf( "%d / %d\n", numerateur, denominateur );
23 / 11
pour un affichage "joli" il faut récupérer le nombre de caractères qu'il faut pour écrire chaque nombre (log 10 du nombre) pour déterminer le nombre d'espaces à insérer devant le plus petit des deux pour qu'ils soient alignés et aussi pour savoir le nombre de caractère à mettre pour dessiner la barre de fraction.
3 ---- 27
M.
Bonjour,
Il n'y a pas de fraction en C. Au mieux des nombres à virgule mais c'est pas la joie pour retrouver la fraction. (en fait ça se fait pas trop mal mais bon...) L'idéal est de gérer soit même deux entiers, pour le numérateur et le dénominateur.
(Pour peu que ce soit aussi ton format d'entrée de tes données)
M.
Il n'y a pas de fraction en C. Au mieux des nombres à virgule mais c'est pas la joie pour retrouver la fraction. (en fait ça se fait pas trop mal mais bon...) L'idéal est de gérer soit même deux entiers, pour le numérateur et le dénominateur.
(Pour peu que ce soit aussi ton format d'entrée de tes données)
M.
merci de m'avoir repondu mais comment puis-je faire pour simplifier une fraction, car dans mon énoncé on me demainde aussi de simplifier une fraction!! Il n'y a pour l'instant que cette "petite" chose qui m'embête!!!
merci d'avance
merci d'avance
Ah, et bien... comme en math...
18 / 6 = 3 / 1 car
18 = 2 * 3 * 3 et
6 = 2 * 3
En bref, on décompose chacun en produit de facteurs premiers et on élimine à part égal les facteurs communs.
1024 / 96
1024 = 2^10
96 = 2^5 * 3
donc 1024 / 96 = 2^(10-5) * 3^(0-1) = 32 / 3
Il faut créer deux tableaux dont l'indice représente le ième nombre premier et la valeur sa puissance dans la décomposition du nombre.
M.
Ou alors force brute, tant que les deux sont divisibles par un entier, tu les divises, quand ils ne le sont plus tu testes avec l'entier suivant jusqu'à ce que cet entier soit inférieur à la racine (/ou la moitié...) du plus petit des deux nombres.
18 / 6 = 3 / 1 car
18 = 2 * 3 * 3 et
6 = 2 * 3
En bref, on décompose chacun en produit de facteurs premiers et on élimine à part égal les facteurs communs.
1024 / 96
1024 = 2^10
96 = 2^5 * 3
donc 1024 / 96 = 2^(10-5) * 3^(0-1) = 32 / 3
Il faut créer deux tableaux dont l'indice représente le ième nombre premier et la valeur sa puissance dans la décomposition du nombre.
M.
Ou alors force brute, tant que les deux sont divisibles par un entier, tu les divises, quand ils ne le sont plus tu testes avec l'entier suivant jusqu'à ce que cet entier soit inférieur à la racine (/ou la moitié...) du plus petit des deux nombres.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question