#include <stdio.h> #include <stdlib.h>
int fn_mcd(int a, int b);
int main(void) { int a, b, x, y; int n, d, mcd; printf("Fracciones a sumar (por ejemplo 5/20 2/8): "); fflush(stdout); if (scanf("%d/%d %d/%d", &a, &x, &b, &y) != 4 || x == 0 || y == 0) return EXIT_FAILURE; d = (x * y) / fn_mcd(x, y); /* Minimo comun multiplo */ n = a * (d/x) + b * (d/y); printf("\n%d/%d + %d/%d = %d/%d", a, x, b, y, n, d); if ((mcd = fn_mcd(n, d)) != 1) printf(" = %d/%d", n/mcd, d/mcd); puts(""); return EXIT_SUCCESS; }
int fn_mcd(int a, int b) { int r; while (b != 0){ r = a % b; a = b; b = r; } return a; }
|