Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/05/2013, 21:05
javidotnet
 
Fecha de Ingreso: mayo-2013
Ubicación: Chaco, Argentina
Mensajes: 45
Antigüedad: 11 años
Puntos: 3
Respuesta: problema al crear funcion

Hola fenixelian

Gracias por la foto, estuvo excelente! me hizo acordar!!

El error se da porque toda función en C debe retornar un valor y nuestra función MD sólo retorna valores cuando se cumple la condición (a % n) == 0 y (a > 3)
Te paso el código corregido

Código:
public static int MD(int a)
{
	int n;
	{
	if (a > 3) // porque el primer número entero no primo es el 4
	{
		for (n = a - 1; n == 1; n--) // n-- es lo mismo que n = n - 1
		{
			if (a % n == 0)
			{
				return n;
			} // if
		} // for

		return 1; // si se llega hasta aquí es porque no se encontró divisor
	}
	else // a < 4
	{
		return 1; // indica que sólo es divisible por 1 (es decir, a = num primo)
	} // if (a > 3)
} // MD
Me había centrado en la lógica del algoritmo y me olvidé que el Lenguaje C es exquisito y detallista, en este caso con los retornos de función.

Fijate si puse bien el "else", lo que pasa es que sólo tengo el VB.NET Express
y sólo puedo probar código Visual Basic.

Saludos cordiales.