cbug, fijate en esta parte...
Yo usaria la funcion abs() dentro de la funcion mcd(), debido a lo que habia aclarado do-while, que a mi se me habia pasado por alto. Ya que haciendo esto uno se olvida de tener que aplicarle el valor absoluto a los numeros antes de pasarlos a la funcion mcd().
Otro punto que se podria ver, seria usar la funcion abs() de la libreria stdlib.h
Salu10.
Código [Seleccionar]
int mcd( int a, int b )
{
if ( b == 0 )
return a;
else
mcd( b, a % b ); //mcd( a, a % b );
}
Yo usaria la funcion abs() dentro de la funcion mcd(), debido a lo que habia aclarado do-while, que a mi se me habia pasado por alto. Ya que haciendo esto uno se olvida de tener que aplicarle el valor absoluto a los numeros antes de pasarlos a la funcion mcd().
Otro punto que se podria ver, seria usar la funcion abs() de la libreria stdlib.h
Código [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int mcd( int a, int b )
{
a = abs( a );
b = abs( b );
return ( b == 0 ) ? a : mcd( b, a % b );
}
int main( void )
{
int x, y;
scanf( "%d %d", &x, &y );
printf( "mcd: %d\n", mcd( x, y ) );
return 0;
}
Salu10.