FRACTION EN LANGAGE C

Résolu/Fermé
Coucou1504 Messages postés 60 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 12 février 2010 - 17 févr. 2008 à 11:55
Coucou1504 Messages postés 60 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 12 février 2010 - 17 févr. 2008 à 20:13
Bonjour,
Je dois écrire un programme qui donne le résultt sous forme de fraction le produit de fraction. J'arrive à obtenir un résultat mais pas sous fraction. Comment obtenir un résultat sous fraction??
Merci d'avance

6 réponses

Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
17 févr. 2008 à 19:55
Purement affichage donc ?

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.
1
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
17 févr. 2008 à 12:04
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.
0
Coucou1504 Messages postés 60 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 12 février 2010 3
17 févr. 2008 à 19:03
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
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
17 févr. 2008 à 19:13
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Coucou1504 Messages postés 60 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 12 février 2010 3
17 févr. 2008 à 19:25
sur ça je suis d'accord mais moi ce que je voudrais savoir c comment faire pour afficher en C mon résultat en fraction!!!
merci de ton aide!!!
0
Coucou1504 Messages postés 60 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 12 février 2010 3
17 févr. 2008 à 20:13
merci tu as répond à ma question c'est ce que je voulais savoir ce n'est pas bête cette solution et c'est logique
encore merci
bonne soirée!!
0