Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Funcion numeros primos C

Estas en el tema de Funcion numeros primos C en el foro de C/C++ en Foros del Web. Aqui esta el programa original: #include <stdio.h> int main () { int i, j, primo,l; primo = 1; printf("Introduzca un numero: \n"); scanf("%d", &l); for ...
  #1 (permalink)  
Antiguo 15/04/2011, 15:18
 
Fecha de Ingreso: enero-2011
Mensajes: 33
Antigüedad: 13 años, 3 meses
Puntos: 0
Funcion numeros primos C

Aqui esta el programa original:


#include <stdio.h>

int main ()
{
int i, j, primo,l;
primo = 1;
printf("Introduzca un numero: \n");
scanf("%d", &l);

for (i = 2; i < l; i++)
{
for ( j = 2; j <= i/2; j++)
if ((i%j) == 0)
primo = 0;
if(primo)
printf("%d\n", i);
primo = 1;
}
system("pause");
return 0;
}

Aqui mi ejemplo de funcion, pero da error, me podrian decir en donde tengo el error(es)?

int primos(int c)
{
int a,j,p;
int num=0;
p=1;
for(a=2 ; a<num ; a++)
{
for(j=2 ; j<=a/2 ; j++)
if ((a%j) == 0)
p = 0;
if(p)
printf("%d\n", a);
p = 1;
return (num);}
}

El programa lo que hace es pedir un numero y Sacar la lista de numeros primos anteriores a ese numero.
  #2 (permalink)  
Antiguo 15/04/2011, 17:38
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: Funcion numeros primos C

Cita:
Iniciado por Bladsmickey Ver Mensaje
Aqui mi ejemplo de funcion, pero da error, me podrian decir en donde tengo el error(es)?

int primos(int c)
{
int a,j,p;
int num=0;
p=1;
for(a=2 ; a<num ; a++)
{
for(j=2 ; j<=a/2 ; j++)
if ((a%j) == 0)
p = 0;
if(p)
printf("%d\n", a);
p = 1;
return (num);}
}
Fijate en lo subrrayado:
- por que devuelves un número en la función?
- declara num? el número es un parámetro de la func
- usa el parametro de la función, c, no num
- si haces eso vas a terminar la función antes de lo deseado

Esto sería lo que intentas:
Código:
void primos(int c){
int a,j,p;
int num=0;
p=1;
for(a=2 ; a<c ; a++){
for(j=2 ; j<=a/2 ; j++)
if ((a%j) == 0)
p = 0;
if(p)
printf("%d\n", a);
p = 1;
}
}
__________________
Foros Desarrollo de Juegos
  #3 (permalink)  
Antiguo 15/04/2011, 18:16
 
Fecha de Ingreso: enero-2011
Mensajes: 33
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Funcion numeros primos C

Cita:
Iniciado por ssaammuu Ver Mensaje
Fijate en lo subrrayado:
- por que devuelves un número en la función?
- declara num? el número es un parámetro de la func
- usa el parametro de la función, c, no num
- si haces eso vas a terminar la función antes de lo deseado

Esto sería lo que intentas:
Código:
void primos(int c){
int a,j,p;
int num=0;
p=1;
for(a=2 ; a<c ; a++){
for(j=2 ; j<=a/2 ; j++)
if ((a%j) == 0)
p = 0;
if(p)
printf("%d\n", a);
p = 1;
}
}
Perfecto, ya veo cual era el problema, y ahora que veo, la variable num esta de adorno alli ya que no realiza ninguna funcion, cierto?
  #4 (permalink)  
Antiguo 16/04/2011, 04:54
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: Funcion numeros primos C

exactamente num debería desaparecer por completo ya que no es usada.
__________________
Foros Desarrollo de Juegos

Etiquetas: funcion, numeros, primos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:06.