SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Lestatx en Sábado 26 de Mayo de 2007, 03:07

Título: Ayuda... Para Un Principiant
Publicado por: Lestatx en Sábado 26 de Mayo de 2007, 03:07
Bueno, primero que todo, HOLA!!-a quien corresponda-.
Tengo un problema con el siguiente programa :
------------------------------------------------------------------------------------------
Código: Text
  1.  
  2. //programa para calcular un numero primo según su posición
  3. #include<conio.h>
  4. #include<iostream.h>
  5.  
  6. CalcularPrimo(int k);
  7.  
  8. main(){int n;
  9.   cout<<"Ingrese la posicion del numero primo que desea hallar: ";cin>>n;
  10.    cout<<"El numero primo que ocupa la posicion "<<n<<" es: "<<CalcularPrimo(n);
  11.    getch();
  12.    }
  13. CalcularPrimo(int k){
  14. int primo, a=0,b=1;
  15. if(k==1)
  16. return 2;
  17. else{
  18.   while(k!=b){int i=3;
  19.     for(int j=2;j<i;j++)
  20.       { if(i%j==0) a++;}//cierra for
  21.    if(a==0){ primo=i; b++;}
  22.    i++;
  23.    }//cierra while
  24.  return primo; }//cierra else
  25.  }//cierra función
  26.  
  27.  
-----------------------------------------------------------------------------------------------
El problema radica en q no sirve. Pero si yo sigo los pasos mentalmente deberia servir correctamente, sin embargo, no es asi. Creo q la culpa es de los parentesis '{'... pero, para mi está correctamente escrito...
quisiera q me ayudaran diciendome xq no funciona correctamente -no deseo otro programa-.... de antemano agradezco la respuesta...

PD: Utilizo el compilador Borland c++ 5.0
Título: Re: Ayuda... Para Un Principiant
Publicado por: JuanK en Sábado 26 de Mayo de 2007, 15:37
el programa esta mal.

Comenzando con que

Código: Text
  1. CalcularPrimo(int k);
  2.  

No indica el tipo de dato que devuelve...

la lógica parece estar mal revisala y si además quieres mas ayuda pues ese programa esta hecho miles de veces a traves de la internet.
Título: Re: Ayuda... Para Un Principiant
Publicado por: omar_osiris en Sábado 26 de Mayo de 2007, 18:53
Creo q estan deben ser las modificaciones a tu prog para que pueda funcionar correctamente, aunque yo terecomendaría la criba de erastótenes para poder obtener los números primos, es más rápido y eficiente.


Código: Text
  1.  
  2. #include<conio.h>
  3. #include<iostream.h>
  4.  
  5. int CalcularPrimo(int k);
  6.  
  7. main(){int n;
  8.   cout<<"Ingrese la posicion del numero primo que desea hallar: ";cin>>n;
  9.   cout<<"El numero primo que ocupa la posicion "<<n<<" es: "<<CalcularPrimo(n);
  10.   getch();
  11.   }
  12.  
  13.  
  14. int CalcularPrimo(int k){
  15. int primo, a=0,b=1;
  16. if(k==1)
  17. return 2;
  18. else{
  19.   int i=3;
  20.   while(k!=b){
  21.     a=0;
  22.     for(int j=2;j<i;j++)
  23.      { if(i%j==0) a++;}//cierra for
  24.   if(a==0){ primo=i; b++;}
  25.   i++;
  26.   }//cierra while
  27. return primo; }//cierra else
  28. }//cierra función
  29.  
  30.  
Título: Re: Ayuda... Para Un Principiant
Publicado por: Lestatx en Sábado 26 de Mayo de 2007, 22:45
Plop!!! ... gracias... ya sé en q me equivoque...se me chispoteo!!
Título: Re: Ayuda... Para Un Principiant
Publicado por: JuanK en Sábado 26 de Mayo de 2007, 23:00
Como no lo vas a saber si te hicieron todo, te lo dieron hecho... vaya esfuerzo.

Gracias omar_osiris por permitir que otro más no aprenda a pescar porque tu ya le das el pescado.
Título: Re: Ayuda... Para Un Principiant
Publicado por: Eternal Idol en Sábado 26 de Mayo de 2007, 23:06
Cita de: "JuanK"
Como no lo vas a saber si te hicieron todo, te lo dieron hecho... vaya esfuerzo.

Gracias omar_osiris por permitir que otro más no aprenda a pescar porque tu ya le das el pescado.
En realidad es un 99% de su codigo original. Si me parece que hubiera sido mejor una indicacion de donde estaba el error.