mais la fonctionne simplification tjr ne marche pas
#if defined(WIN32) #define _CRT_SECURE_NO_WARNINGS #endif #include <stdio.h> #include <stdlib.h> void lire(int*t){ printf("\n\t Donner le numerateur:\t"); scanf("%d",&t[0]); printf("\t Donner le denominateur :\t"); scanf("%d",&t[1]); } void simplification(int* res){ int i; for (i=2; i<100; i++) if(res[0]%i == 0 && res[1]%i == 0){ res[0] /= i; res[1] /= i; break; } } void ecrire(int* t1, int* t2, int* res, char opp){ // simplification(t1); // simplification(t2); simplification(res); printf("\n\n\n\t\t %d/%d [%c] %d/%d = %d/%d\n\n", t1[0], t1[1], opp, t2[0], t2[1], res[0], res[1]); } void addition(int* t1, int* t2, int* res) { res[0] = t1[0] * t2[1] + t2[0] * t1[1]; res[1] = t1[1] * t2[1]; } void soustraction(int* t1, int* t2, int* res) { res[0] = t1[0] * t2[1] - t2[0] * t1[1]; res[1] = t1[1] * t2[1]; } void division(int* t1, int* t2, int* res) { res[0] = t1[0] * t2[1]; res[1] = t1[1] * t2[0]; } void multiplication(int* t1, int* t2, int* res) { res[0] = t1[0] * t2[0]; res[1] = t1[1] * t2[1]; } int main() { int f1[2],f2[2],res[2]; int c; system("color a"); ChangerFraction: printf("\n\t\t Lecture De la premier fraction : \n\n"); lire(f1); printf("\n\t\t Lecture De la deuxieme fraction : \n\n"); lire(f2); system("cls"); for(;;){ system("cls"); printf("\n\n\n\n\t\t\t\t * * * MENU * * * \n\n"); printf("\t Pour Calculer l'addition..........................1\n\n"); printf("\t Pour Calculer la soustraction.....................2\n\n"); printf("\t Pour Calculer la multiplication...................3\n\n"); printf("\t Pour Calculer la division.........................4\n\n"); printf("\t Pour Changer de fraction..........................5\n\n"); printf("\t Pour Quiter.......................................6\n\n"); printf("\t\t Votre choix est :\t"); scanf("%d",&c); system("cls") ; switch(c) { case 1: addition(f1, f2, res); ecrire(f1, f2, res, '+'); break; case 2: soustraction(f1, f2, res); ecrire(f1, f2, res, '-'); break; case 3: multiplication(f1, f2, res); ecrire(f1, f2, res, '*'); break; case 4: division(f1, f2, res); ecrire(f1, f2, res, '/'); break; case 5: goto ChangerFraction; case 6: return 0; } system("pause"); } }
#include <stdio.h> #include <stdlib.h> void lire(int* t){ printf("\n\t Donner le numerateur:\t"); scanf("%d",&t[0]); printf("\t Donner le denominateur :\t"); scanf("%d",&t[1]); } int PlusGrandCommunDiviseur(int a, int b) { int c; while (b != 0) { c = a % b; a = b; b = c; } return a; } void simplification(int* res) { int r; r = PlusGrandCommunDiviseur(res[0], res[1]); res[0] /= r; res[1] /= r; /* Pas de - au dénominateur */ if(res[1] < 0 ){ res[0]=-res[0]; res[1]=-res[1]; } } void ecrire(int* t1, int* t2, int* res, char opp) { /* simplification(t1); */ /* simplification(t2); */ simplification(res); printf("\n\n\n\t\t %d/%d [%c] %d/%d = %d/%d\n\n", t1[0], t1[1], opp, t2[0], t2[1], res[0], res[1]); } #define OPERATION_COUNT 4 #define CHANGER_FRACTIONS OPERATION_COUNT + 1 #define QUITTER OPERATION_COUNT + 2 /* Pointeur sur une opération */ typedef void (* OPERATION) (int* t1, int* t2, int* res); /* Info sur une opération */ typedef struct _OPERATION_INFO { char description[128]; char signe; OPERATION operation; } OPERATION_INFO; void addition(int* t1, int* t2, int* res) { res[0] = t1[0] * t2[1] + t2[0] * t1[1]; res[1] = t1[1] * t2[1]; } void soustraction(int* t1, int* t2, int* res) { res[0] = t1[0] * t2[1] - t2[0] * t1[1]; res[1] = t1[1] * t2[1]; } void multiplication(int* t1, int* t2, int* res) { res[0] = t1[0] * t2[0]; res[1] = t1[1] * t2[1]; } void division(int* t1, int* t2, int* res) { res[0] = t1[0] * t2[1]; res[1] = t1[1] * t2[0]; } /* Tableau des opérations */ OPERATION_INFO operations[OPERATION_COUNT] = { {"l'addition..........................", '+', addition}, {"la soustraction.....................", '-', soustraction}, {"la multiplication...................", '*', multiplication}, {"la division.........................", '/', division}, }; int main() { int f1[2],f2[2],res[2]; int c; int operationIndex; system("color a"); ChangerFraction: printf("\n\t\t Lecture De la premier fraction : \n\n"); lire(f1); printf("\n\t\t Lecture De la deuxieme fraction : \n\n"); lire(f2); system("cls"); for(;;) { system("cls"); printf("\n\n\n\n\t\t\t\t * * * MENU * * * \n\n"); for (operationIndex = 0; operationIndex < OPERATION_COUNT; operationIndex++) printf("\t Pour Calculer %s%d\n\n", operations[operationIndex].description, operationIndex + 1); printf("\t Pour Changer de fraction..........................%d\n\n", CHANGER_FRACTIONS); printf("\t Pour Quiter.......................................%d\n\n", QUITTER); printf("\t\t Votre choix est :\t"); scanf("%d",&c); system("cls") ; if ((c > 0) && (c <= OPERATION_COUNT)) { operations[c - 1].operation(f1, f2, res); ecrire(f1, f2, res, operations[c - 1].signe); } else if (c == CHANGER_FRACTIONS) goto ChangerFraction; else if (c == QUITTER) return 0; else printf("Entrez un nombre entre 1 et %d\n", QUITTER); system("pause"); } }
float *deno1
lire(deno1,nume1);
scanf("%f",&deno);
# include <stdio.h> # include <stdlib.h> void lire(int*); void ecrire(int*,int*,int*,int); int addition(int*,int*,int*); int soustraction(int*,int*,int*); int division(int*,int*,int*); int multiplication(int*,int*,int*); void simplification(int*); int main() { int f1[2],f2[2],res[2]; int c; system("color a"); printf("\n\t\t Lecture De la premier fraction : \n\n"); lire(f1); printf("\n\t\t Lecture De la deuxieme fraction : \n\n"); lire(f2); system("cls"); for(;;){ system("cls"); printf("\n\n\n\n\t\t\t\t * * * MENU * * * \n\n"); printf("\t Pour Calculer L'addition..........................1\n\n"); printf("\t Pour Calculer la soustraction.....................2\n\n"); printf("\t Pour Calculer la multiplication...................3\n\n"); printf("\t Pour Calculer la division.........................4\n\n"); printf("\t Pour changer de fraction..........................5\n\n"); printf("\t Pour Quiter.......................................6\n\n"); printf("\t\t Votre choix est :\t"); scanf("%d",&c); if(c==1){ system("cls") ; addition(f1,f2,res); ecrire(f1,f2,res,1); printf("\n"); system("pause"); } if(c==2){ system("cls") ; soustraction(f1,f2,res); ecrire(f1,f2,res,2); printf("\n") ; system("pause"); } if(c==3){ system("cls") ; multiplication(f1,f2,res); ecrire(f1,f2,res,3); printf("\n") ; system("pause"); } if(c==4){ system("cls") ; division(f1,f2,res); ecrire(f1,f2,res,4); printf("\n") ; system("pause"); } if(c==5){ system("cls") ; printf("\n\t\t Lecture De la premier fraction : \n\n"); lire(f1); printf("\n\t\t Lecture De la deuxieme fraction : \n\n"); lire(f2); } if(c==6) break; } } void lire(int*t){ printf("Donner le Denominateur:\t"); scanf("%d",&t[1]); printf("Donner le numerateur:\t"); scanf("%d",&t[2]); } void ecrire(int*t,int*t2,int*res,int opp){ if (opp == 1){ printf("\n\n\n\t\t %d/%d [+] %d/%d = %d/%d\n\n",t[1],t[2],t2[1],t2[2],res[1],res[2]); } if (opp == 2){ printf("\n\n\n\t\t %d/%d [-] %d/%d = %d/%d\n\n",t[1],t[2],t2[1],t2[2],res[1],res[2]); } if (opp == 3){ printf("\n\n\n\t\t %d/%d [X] %d/%d = %d/%d\n\n",t[1],t[2],t2[1],t2[2],res[1],res[2]); } if (opp == 4){ printf("\n\n\n\t\t %d/%d [/] %d/%d = %d/%d\n\n",t[1],t[2],t2[1],t2[2],res[1],res[2]); } } int addition(int*t,int*t2,int*res){ res[1] = ( (t[1]) * (t2[2]) ) + ( (t2[1]) * (t[2]) ); res[2] = ( (t[2]) * (t2[2]) ) ; return *res; } int soustraction(int*t,int*t2,int*res){ res[1] = ( (t[1]) * (t2[2]) ) - ( (t2[1]) * (t[2]) ); res[2] = ( (t[2]) * (t2[2]) ) ; return *res; } int division(int*t,int*t2,int*res){ res[1] = ( t[1] ) * ( t2[1] ); res[2] = ( t[2] ) * ( t2[2] ); return *res; } int multiplication(int*t,int*t2,int*res){ res[1] = ( t[1] ) * ( t2[2] ); res[2] = ( t[2] ) * ( t2[1] ); return *res; } void simplification(int*res){ int i; for (i=0;i<100;i++){ if( res[1] % i == 0 ) { if( res[2] % i == 0){ res[1] = res[1]/i; res[2] = res[2]/i; } } } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question# include <stdio.h> # include <stdlib.h>i void lire(int*); void ecrire(int*,int*,int*,int); int addition(int*,int*,int*); int soustraction(int*,int*,int*); int division(int*,int*,int*); int multiplication(int*,int*,int*); int simplification(int*); int main() { int f1[2],f2[2],res[2]; int c; system("color a"); printf("\n\t\t Lecture De la premier fraction : \n\n"); lire(f1); printf("\n\t\t Lecture De la deuxieme fraction : \n\n"); lire(f2); system("cls"); for(;;){ system("cls"); printf("\n\n\n\n\t\t\t\t * * * MENU * * * \n\n"); printf("\t Pour Calculer L'addition..........................1\n\n"); printf("\t Pour Calculer la soustraction.....................2\n\n"); printf("\t Pour Calculer la multiplication...................3\n\n"); printf("\t Pour Calculer la division.........................4\n\n"); printf("\t Pour changer de fraction..........................5\n\n"); printf("\t Pour Quiter.......................................6\n\n"); printf("\t\t Votre choix est :\t"); scanf("%d",&c); if(c==1){ system("cls") ; addition(f1,f2,res); ecrire(f1,f2,res,1); printf("\n"); system("pause"); } if(c==2){ system("cls") ; soustraction(f1,f2,res); ecrire(f1,f2,res,2); printf("\n") ; system("pause"); } if(c==3){ system("cls") ; multiplication(f1,f2,res); ecrire(f1,f2,res,3); printf("\n") ; system("pause"); } if(c==4){ system("cls") ; division(f1,f2,res); ecrire(f1,f2,res,4); printf("\n") ; system("pause"); } if(c==5){ system("cls") ; printf("\n\t\t Lecture De la premier fraction : \n\n"); lire(f1); printf("\n\t\t Lecture De la deuxieme fraction : \n\n"); lire(f2); } if(c==6) break; } } void lire(int*t){ printf("\n\t Donner le Denominateur:\t"); scanf("%d",&t[0]); printf("\t Donner le numerateur :\t"); scanf("%d",&t[1]); } void ecrire(int*t,int*t2,int*res,int opp){ if (opp == 1){ printf("\n\n\n\t\t %d/%d [+] %d/%d = %d/%d\n\n",t[0],t[1],t2[0],t2[1],res[0],res[1]); } if (opp == 2){ printf("\n\n\n\t\t %d/%d [-] %d/%d = %d/%d\n\n",t[0],t[1],t2[0],t2[1],res[0],res[1]); } if (opp == 3){ printf("\n\n\n\t\t %d/%d [X] %d/%d = %d/%d\n\n",t[0],t[1],t2[0],t2[1],res[0],res[1]); } if (opp == 4){ printf("\n\n\n\t\t %d/%d [/] %d/%d = %d/%d\n\n",t[0],t[1],t2[0],t2[1],res[0],res[1]); } } int addition(int*t,int*t2,int*res){ res[0] = ( (t[0]) * (t2[1]) ) + ( (t2[0]) * (t[1]) ); res[1] = ( (t[1]) * (t2[1]) ) ; return *res; } int soustraction(int*t,int*t2,int*res){ res[0] = ( (t[0]) * (t2[1]) ) - ( (t2[0]) * (t[1]) ); res[1] = ( (t[1]) * (t2[1]) ) ; return *res; } int division(int*t,int*t2,int*res){ res[0] = ( t[0] ) * ( t2[1] ); res[1] = ( t[1] ) * ( t2[0] ); return *res; } int multiplication(int*t,int*t2,int*res){ res[0] = ( t[0] ) * ( t2[0] ); res[1] = ( t[1] ) * ( t2[1] ); return *res; } int simplification(int*res){ int i; for (i=0;i<100;i++){ if( res[0] % i == 0 ) { if( res[1] % i == 0){ res[0] = res[0]/i; res[1] = res[1]/i; } } } return *res; }