Viernes 8 de Noviembre de 2024, 18:58
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Problema
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Problema (Leído 1384 veces)
badyalberto
Miembro activo
Mensajes: 77
Problema
«
en:
Lunes 19 de Enero de 2009, 22:45 »
0
Código: Text
#include<stdio.h>
int suma(int num1, int num2);
int calculden();
int calculnum(int num1, int num2,int resulden,int den1,int den2);
int mcd(int dividendo,int divisor);
int mcm(int dividendo,int divisor,int dividendo1);
int main()
{
int num1,num2,den1,den2,resul,resulden,resulnum;
printf("Programa que cacula el resultat de la suma de dues fracciones. n");
printf("n");
printf("n");
printf("Introdueix el numerador de la primera fraccio: n");
scanf("%d", &num1);
printf("Introdueix el denomirador de la primera fraccio: n");
scanf("%d", &den1);
printf("Ahora la segona fraccio. n");
printf("Introdueix el numerador de la segona fraccio: n");
scanf("%d", &num2);
printf("Introdueix el denominador de la segona fraccio: n");
scanf("%d", &den2);
if (den1 == den2)
{
printf("La suma de les fraccions dona com a resultat: %d/%d n", num1+num2,den1);
getchar();
getchar();
}
else
{
resulden=calculden();
resulnum=calculnum(num1,num2,resulden,den1,den2);
printf("La suma de les fracciones dona com a resultat: %d/%d n", resulnum,resulden);
getchar();
getchar();
}
}
int calculden()
{
int num,i,resulmcm,dividendo1;
int dividendo=num, divisor=num;
printf("Introduce el primer denominador: n");
scanf("%d", &num);
for (i = 1; i <= 2; i++)
{
if (num > dividendo)
{
dividendo = num;
printf("Introduce el segundo denominador: n");
scanf("%d", &num);
}
else if (num < dividendo)
{
divisor = num;
}
}
dividendo1=mcd(dividendo,divisor);
resulmcm=mcm(dividendo,divisor,dividendo1);
return resulmcm;
}
int mcd(int dividendo1, int divisor)
{
int aux;
do
{
aux = divisor;
divisor = dividendo1 % divisor;
dividendo1=aux;
}while (divisor != 0);
return dividendo1;
}
int mcm(int dividendo, int divisor, int dividendo1)
{
int resulmcm;
resulmcm=(dividendo*divisor)/dividendo1;
return resulmcm;
}
int calculnum(int num1,int num2, int resulden, int den1, int den2)
{
int sumnumtotal,sumnum1,sumnum2;
sumnum1=num1*resulden/den1;
sumnum2=num2*resulden/den2;
sumnumtotal=sumnum1+sumnum2;
return sumnumtotal;
}
Queria saber como puedo arreglar el calculden para que no me tenga q introducir de nuevo los denominadores.
Tweet
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Problema
«
Respuesta #1 en:
Martes 20 de Enero de 2009, 08:55 »
0
Pasándolo como parámetro, tal y como haces en
calculnum()
o
mcd()
.
Salud
Fr33k K0mpu73r
badyalberto
Miembro activo
Mensajes: 77
Re: Problema
«
Respuesta #2 en:
Martes 20 de Enero de 2009, 08:56 »
0
ya pero esq no lo entiendo, entonces los dos den se tienen q llamar igual ? :S y no se puede
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Problema
«
Respuesta #3 en:
Martes 20 de Enero de 2009, 09:00 »
0
No sé a qué te refieres... Yo digo esto:
Código: C
int
calculden
(
int
den1
,
int
den2
)
;
Fr33k K0mpu73r
badyalberto
Miembro activo
Mensajes: 77
Re: Problema
«
Respuesta #4 en:
Martes 20 de Enero de 2009, 09:03 »
0
entonces como hace el divisor=num y el dividendo=num, si no hay ningun divisor ni dividendo :S
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Problema
«
Respuesta #5 en:
Martes 20 de Enero de 2009, 10:36 »
0
Vamos a ver:
Código: C
int
calculden
(
int
den1
,
int
den2
)
{
int
resulmcm
,
dividendo1
;
if
(
den1
>
den2
)
{
dividendo1
=
mcd
(
den1
,
den2
)
;
resulmcm
=
mcm
(
den1
,
den2
,
dividendo1
)
;
}
else
{
dividendo1
=
mcd
(
den2
,
den1
)
;
resulmcm
=
mcm
(
den2
,
den1
,
dividendo1
)
;
}
return
resulmcm
;
}
Yo haría la lógica de otra manera, sobre todo que la función
mcd()
no dependa del orden de los parámetros y que
mcm()
no necesite 3 números para hallar el mínimo común múltiplo de 2 números. De hecho todo ello podría calcularse dentro de esta misma función y ahorrarse malabarismos previos, parámetros innecesarios y ganar en reusabilidad del código.
Salud
Fr33k K0mpu73r
badyalberto
Miembro activo
Mensajes: 77
Re: Problema
«
Respuesta #6 en:
Martes 20 de Enero de 2009, 13:43 »
0
Ostia muchas gracias pues era eso, pues no me e tirao rato yo xDDDD
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Problema
«
Respuesta #7 en:
Martes 20 de Enero de 2009, 13:52 »
0
De nada, pero la próxima vez intenta pensar mejor la lógica del programa porque con eso que has puesto no vas a ninguna parte.
¡Suerte y a darle al teclado y a depurar!
Fr33k K0mpu73r
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Problema