| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
hansolo
Registrado: 04 Oct 2004 Mensajes: 16
| Publicado: 26/10/2004 5:51 am | | | Título: suma de numeros entrecortados |
| No funciona
Tengo algunos problemas con funciones y acciones
No se como solucionarlo 8O
Gracias
/* Suma- cortados*/
#include <stdio.h> #include <stdlib.h> int main(void) { int num1, num2, den1,den2,divisor,m,resultat,d;
num1=scanf("%d",&num1); den1=scanf("%d",&den1); num2=scanf("%d",&num2); void simplifica(float a,float b); /*se tiene que declarar aqui la función*/
while (num2!=0) { den2=scanf("%d",&den2); num1=num1*den2+num2*den1; den1=den1*den2; simplifica(num1,den1); num2=scanf("%d",&num2); } printf("%d",num1); printf(" "); printf("%d",num1); } /*acción*/ void simplifica(float a,float b) { divisor=mcd(a,b); /* linia 1*/ a=(a / divisor); /* linia 2*/ b=(b / divisor); /* linia 3*/
} /*funcion*/ mcd (int a, int b):int /*se pueden definir varibles dentro de una funcioó*/ if(a < b) { m=a; {else m=b; } } resultat=1; d=2; while (d <= m) { if ((a mod d=0) && (b mod d =0)) { m=(m/d); a=(a/d); b=(b/d); resultat=(resultat*d); {else d=d+1; } } return (resultat); }
Otra opción es como simplificar, eliminando la linia 1, 2, 3 |
| | Volver arriba | |  | hansolo
Registrado: 04 Oct 2004 Mensajes: 16
| Publicado: 26/10/2004 1:22 pm | | | Título: |
| Perdonar, me referia que este programa debe sumar quebrados, no cambie el titulo
lo siento  |
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
| Publicado: 27/10/2004 7:38 am | | | Título: |
| | Código: | #include <stdio.h> #include <stdlib.h>
int mcd(int a, int b);
int main(void){ int num1 = 0, num2 = 0, den1 = 0, den2 = 0; int num, den; do{ puts("Introduzca numeros a sumar, por ejemplo 5/20 2/8:"); fflush(stdin); scanf("%d/%d %d/%d", &num1, &den1, &num2, &den2); }while ((den1 == 0) || (den2 == 0)); den = den1 * (den2 / mcd(den1, den2)); num = (num1 * (den/den1)) + (num2 * (den/den2)); printf("%d/%d + %d/%d = %d/%d", num1, den1, num2, den2, num, den); if (mcd(num, den) != 1) printf(" = %d/%d\n", num/mcd(num, den), den/mcd(num, den)); return EXIT_SUCCESS; }
int mcd(int a, int b){ int temp; while (b != 0) temp = a%b, a = b, b = temp; return (a < 0) ? -a : a; } |
Un saludo |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|