Tarea de programación en C
#include lt;stringgt;
#include lt;math.hgt;
#include lt;windows.hgt;
usando el espacio de nombres std;
enum Mode{GCD, LOOP};
struct Fract
{
int nume; //numerador
int deno;
};
int gcd(int x, int y)
{ p>
if(xy==0)
devuelve y;
else
devuelve gcd(y, xy);
}
int loop(int x, int y)
{ int t=1;<
while(t=xy)
{
x=y
y=t
}
devuelve y; >}
bool simple(Fractamp; valout, Modo modo = GCD)
{
int pos;
switch(modo)
{
caso MCD:
pos = gcd(valout.nume, valout.deno
valout.nume = valout); .nume = valout.nume/pos;
valout.deno = valout.deno/pos;
descanso
caso BUCLE:
pos = loop(valout.nume, valout.deno);
valout.deno/pos;
Desconectar;
Predeterminado:
Devuelve falso;
descanso
}
Devuelve verdadero
}
bool formato; (char* valin, Fractamp; valout)
{
char* dest
int pos
char nume [128] = {0};
char deno[128] = {0};
if(NULL! = (dest = strchr(valin, '.') )
{
pos = dest - valin 1;
strncpy(nume, valin, pos- 1); //entero
strcpy(deno, valin pos); //fraccional
valout.deno = pow(10, strlen(deno));
valout.nume = atoi(nume)*valout.deno atoi(deno);
valou);
t.deno = atoi(deno);
valout.nume = atoi(nume);
valout.nume = atoi(valin pos);
valout .nume = atoi(nume);
lt;lt;valy.numelt;lt;"/"/"lt;lt;valy.deno
lt;lt; = "
lt; lt; sum.denolt; lt; endl;
break;
case '/':
suma = valx/valy;
coutlt;lt;valx.numelt;lt;lt;/"/"lt;lt;valx.denolt;lt;lt;/" /"
lt;lt;valy.numelt;lt;lt;/"/"/"
coutlt;lt;valx.numelt;lt;lt;/"/"valy.denolt;lt;lt;/ "/"/"