Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/05/2013, 09:44
fenixelian
 
Fecha de Ingreso: mayo-2013
Mensajes: 5
Antigüedad: 11 años
Puntos: 0
Respuesta: problema al crear funcion

Cita:
Iniciado por javidotnet Ver Mensaje
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.
por desgracia otra vez con el mismo problema. paso lo mismo que me pasaba cuando le ponia un return afuera del ciclo for. Sea o no divisible me toma el valor que le pongo al final. tambien algo que vi es que en el primer if deveria ser (a>3 || a<-3) ya que por ejemplo el primer num que divide al 72 es el 32 si es q no me equivoco, pero tambien el primer num que divide al (-72) es el 32. pero bueno, eso seria algo para corregirle despues que creo no sera tan complicado. ahora lo que me preocupa es no poder lograr que ande algo tan simple. realmente no entiendo por que no llega a ningun true que pueda devolver un valor dentro del ciclo for. te agradesco mucho la respuesta, se me3 van aclarando varias cosas. aca unas fotos aver si te das cuenta que puede ser lo que esta pasando. gracias

http://imageshack.us/photo/my-images/259/33092058.png/
http://imageshack.us/photo/my-images/40/66436267.png/