Lo primero que hice fue crear una función en la que metes un número y te dice si es primo o no, esa función la probé por separado y funciona correctamente, luego hice el procedimiento y el programa principal con lo que me pedía y al compilar me tira esos errores. No logro ver en qué me equivoco.
Hola,
El problema es que al llamar Primos en el main le estás pasando a y b por referencia (les pasas &a y &b que son las direcciones de a y b) y en la función Primos tenés definido que los parámetros son de tipo entero y pasados por valor (int a, int b).
Aprovecho para comentarte sobre tu iteración en el intervalo [a,b]. Es necesario visitar todos los valores del intervalo?
Saludos,
Alberto.
El problema es que al llamar Primos en el main le estás pasando a y b por referencia (les pasas &a y &b que son las direcciones de a y b) y en la función Primos tenés definido que los parámetros son de tipo entero y pasados por valor (int a, int b).
Aprovecho para comentarte sobre tu iteración en el intervalo [a,b]. Es necesario visitar todos los valores del intervalo?
Saludos,
Alberto.
Corregí lo de pasar a y b por referencia y volví a compilar, me tira una advertencia:
El problema ocurre en la línea printf("%d ", &aux); pero no entiendo por qué.
En respuesta a Emiliano Sebastian Suarez Canepa
Re: Ejercicio 2 Primos
Hola!
Cuando colocamos un ampersand (&) adelante de una variable nos referimos a la dirección de memoria de la misma, en este caso el &aux hace referencia a la dirección de memoria de la variable aux. La dirección de memoria no es un entero, por eso es el warning.
Además no se pide en el ejercicio imprimir direcciones de memoria, sino que se pide imprimir todos los números primos entre a y b.
Saludos,
Lucía.
Cuando colocamos un ampersand (&) adelante de una variable nos referimos a la dirección de memoria de la misma, en este caso el &aux hace referencia a la dirección de memoria de la variable aux. La dirección de memoria no es un entero, por eso es el warning.
Además no se pide en el ejercicio imprimir direcciones de memoria, sino que se pide imprimir todos los números primos entre a y b.
Saludos,
Lucía.
En respuesta a Lucia Urquiola Chadarevian
Re: Ejercicio 2 Primos
Pude solucionar eso y me compila sin ningún problema, pero luego de poner los valores de A y B no ocurre nada, o sea me queda en loop, asumo que es por algo que estaré haciendo mal en el void, así me quedó el código final:
En respuesta a Emiliano Sebastian Suarez Canepa
Re: Ejercicio 2 Primos
Buenas,
Una de las cosas que veo ahí es que en el primer if de "esPrimo" no está haciendo una comparación, ya que las comparaciones se hacen con dos signos de igual ( == ). Lo que pienso que esta sucediendo es que estas asignandole a num el valor 1 (porque 1 signo de igual es para asignar).
Chequea que pasa corrigiendo eso, y cualquier cosa si no funciona volve a consultar por acá.
Una de las cosas que veo ahí es que en el primer if de "esPrimo" no está haciendo una comparación, ya que las comparaciones se hacen con dos signos de igual ( == ). Lo que pienso que esta sucediendo es que estas asignandole a num el valor 1 (porque 1 signo de igual es para asignar).
Chequea que pasa corrigiendo eso, y cualquier cosa si no funciona volve a consultar por acá.
Hola!
Con respecto a la pregunta. ¿Sería suficiente que corte al momento en que módulo sea cero? (o sea, que pasaría por todos los valores sólo sí, por ejemplo, el número fuera primo).
Gracias
Con respecto a la pregunta. ¿Sería suficiente que corte al momento en que módulo sea cero? (o sea, que pasaría por todos los valores sólo sí, por ejemplo, el número fuera primo).
Gracias