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

Duda con codigo de programacion

Estas en el tema de Duda con codigo de programacion en el foro de C/C++ en Foros del Web. Por favor no entiendo este codigo, es para dar los primeros n numeros primos en un vector el usuario debe decir la cantidad de numeros ...
  #1 (permalink)  
Antiguo 17/09/2014, 09:39
 
Fecha de Ingreso: septiembre-2014
Mensajes: 1
Antigüedad: 9 años, 7 meses
Puntos: 0
Pregunta Duda con codigo de programacion

Por favor no entiendo este codigo, es para dar los primeros n numeros primos en un vector el usuario debe decir la cantidad de numeros primos; pero no entiendo porque en el ciclo usa una k

#include <stdio.h>

int primos[100],i,k,n;

int main()
{
printf ("ingrese la cantidad de numeros");
scanf ("%d",&n);
for(i=2;k<=n;i++)
{
if(i%2!=0 && i%3!=0 && i%5!=0 && i%7!=0)
{
k++;
primos[k]=i;
}else{
if(i==2 || i==3 || i==5 || i==7){
k++;
primos[k]=i;
}
}
}
for(i=1;i<=n;i++)
{
printf("%d ",primos[i]);
}
getchar ();
}
  #2 (permalink)  
Antiguo 17/09/2014, 12:08
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Duda con codigo de programacion

creo que ese programa es un tremendo bugazo.
Si lo compila sabe kien los problemas que te puede dar.... sobre todo aquí: primos[k]=i;

si k no sabes lo que vale como vas a meter en primos[k] (que es una posición que no tenemos ni idea) lo que esta en i :S

No se si eso llega a compilar. Y de hacer puede ser catastrófico. XDD

Este código esta muy loco, no pienso compilarlo jajaja.

a menos que antes lo inicializaramos k con 0, cosa que no veo por ninguna parte...así que nanain -_-

Si alguien lo entiende que lo diga XDD
  #3 (permalink)  
Antiguo 17/09/2014, 12:57
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 10 meses
Puntos: 73
Respuesta: Duda con codigo de programacion

k es el contador para los primos que van apareciendo y, en efecto, como dice vangodp, habría que haberla inicializado a cero (antes de entrar al bucle for).
  #4 (permalink)  
Antiguo 21/09/2014, 07:24
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Duda con codigo de programacion

k es global.
En C las variables globales parten en 0.
k parte en 0.

En general, las variables locales parten con basura, no asi las globales.

Tal vez convendria usar k primero e incrementarla despues de hacer la insercion en el arreglo.
__________________
Visita mi perfil en LinkedIn

Etiquetas: c++, 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 13:32.