Foros del Web » Programación para mayores de 30 ;) » C/C++ »

simplificacion de fracciones

Estas en el tema de simplificacion de fracciones en el foro de C/C++ en Foros del Web. Hola compañeros, en un ejercicio me pregunta que dados 2 numeros (numerador y denominador) haga las fracciones, por ejemplo: Numerador: 120 ->la llamamos "M" Denominador: ...
  #1 (permalink)  
Antiguo 22/10/2011, 11:57
Avatar de ajmed45  
Fecha de Ingreso: octubre-2011
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 1
simplificacion de fracciones

Hola compañeros, en un ejercicio me pregunta que dados 2 numeros (numerador y denominador) haga las fracciones, por ejemplo:

Numerador: 120 ->la llamamos "M"

Denominador: 80->la llamamos "N"

y nos muestre por pantalla:

120/80 = 60/40 = 30/20 = 15/10 = 3/2

la comprobacion que hace es:
1º Numerador y Denominador es divisible entre 2, si, por tanto 60/40
2º 60/40 es divisible entre 2,si, por tanto 30/20
3º 30/20 es divisible entre 2, si, por tanto 15/10
4º 15/10 es divisible entre 2 (NO), y entre 3 (NO), y entre 4(NO), y entre 5(SI), por tanto 3/2.


mi idea era hacerlo con bucles do/while.

asi que he puesto 3 bucles do/while.

HACER:{
M=M/2
N=N/2
}
MIENTRAS:
M%2==0 y N%2==0;

HACER:{
M=M/3
N=N/3
}
MIENTRAS:
M%3==0 y N%3==0;

HACER:{
M=M/5
N=N/5
}
MIENTRAS:
M%5==0 y N%5==0;






NOTA: si os habeis fijado no he puesto que sea divisible entre 4, puesto que si le ponems valor cuatro (a numerador o denominador) no queremos que nos saque directamente la simplificacion, sino que compruebe que sea divisible entre2-3-4-5...

con la especie de algoritmo que os he puesto, me sale por pantalla lo siguiente.

120/80 = 60/40 = 30/20 =15/10 =5/3 1/0
ni siquiera me saca el ultimo igual, y las 2 ultimas fracciones están mal.
Aparte que si le pones de valores al principio 7 y 1, te hace un bucle infinito de 0/0.

Así que, era para ver si me podíais echar un cable, gracias.
  #2 (permalink)  
Antiguo 22/10/2011, 12:26
 
Fecha de Ingreso: septiembre-2011
Mensajes: 22
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: simplificacion de fracciones

Pon directamente el codigo en C/C++. Puede que sea algun error al ponerlo en C.
  #3 (permalink)  
Antiguo 22/10/2011, 21:00
 
Fecha de Ingreso: septiembre-2011
Mensajes: 16
Antigüedad: 12 años, 7 meses
Puntos: 7
Respuesta: simplificacion de fracciones

El siguiente código C funciona en Dev-C++, sin problemas. Saludos...

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.   int M,N,i,menor, multiplo, hay_multiplo;
  5.  
  6.   printf("Introduzca el numerador: ");
  7.   scanf("%d", &M);
  8.   printf("Introduzca el denominador: ");
  9.   scanf("%d", &N);
  10.  
  11.   printf("%d/%d", M,N);
  12.   do {
  13.     if (M < N )
  14.        menor = M;
  15.     else
  16.        menor = N;
  17.    
  18.     i=2;
  19.     hay_multiplo=0;
  20.     while (i <= menor && hay_multiplo == 0){
  21.       if (M % i == 0 && N % i == 0){
  22.          multiplo = i;
  23.          hay_multiplo = 1;
  24.       }
  25.       i++;
  26.     }
  27.     if (hay_multiplo == 1){
  28.        M=M/multiplo;
  29.        N=N/multiplo;
  30.        printf(" = %d/%d", M, N);
  31.     }
  32.   }while (hay_multiplo==1);
  33.  
  34.   getche();
  35.   return 0;
  36. }
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:51.