Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: snoopty en 3 Diciembre 2021, 08:56 am



Título: Código que se repite dos veces y no sé porqué
Publicado por: snoopty en 3 Diciembre 2021, 08:56 am
En realidad, a partir de este Programa se han comenzado a repetir 2 veces la ejecución de todos los demás ......Y otra cosa,  no sé aún porqué puedo prescindir de declarar la Librería CCTYPE si
igualmente funciona el Código para ese fin. ( IDE : CODEBLOCKS 20.03  )
Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cctype>
  4. using namespace std;
  5.  
  6. char alfanumerico[100];
  7.  
  8.  
  9. string numeros;
  10.  
  11. string texto;
  12.  
  13.  
  14. int main( )
  15. {
  16.  
  17. int a = 0;
  18.  
  19.  
  20. cout << "Ingrese N\243meros y Letras MEZCLADOS :" << endl;
  21.  
  22. cin >> alfanumerico;
  23.  
  24. // " a " va a referir a cada uno de los Elementos del 'Array', desde el " [0] ",
  25. // hasta el último que se ingrese " [ ' n ' ] "
  26. while ( a < ( sizeof ( alfanumerico ) - 1 ) ) // Que se evalúe la existencia, desde lo cuantitativo, de un Elemento del 'Array'
  27.                                              // que sea menor al tamaño total del 'Array'
  28. {
  29.  
  30. if ( isdigit ( alfanumerico [a] ) )
  31. {
  32.  
  33. numeros = numeros + alfanumerico [a]; // Si en el 'Array' ya había un Nro, que éste
  34.                                      // se almacene y busque el próximo para
  35.                                      // también almacenarlo en la Var " numeros "
  36.  
  37. }
  38. else
  39. {
  40.  
  41. texto = texto + alfanumerico [a];     // Si en el 'Array' ya había una Letra, que ésta
  42.                                      // se almacene y busque la próxima para
  43.                                      // también almacenarla en la Var " texto "
  44.  
  45.  
  46. }
  47.  
  48. a ++;
  49.  
  50. }
  51.  
  52. cout << "Los N\243meros son :" << numeros << endl;
  53.  
  54. cout << "Las Letras son :" << texto << endl;
  55.  
  56.  
  57. system ("pause");
  58. }
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  

Gracias x leer el mensaje.



Título: Re: Código que se repite dos veces y no sé porqué
Publicado por: K-YreX en 3 Diciembre 2021, 18:01 pm
El programa no tiene nada que ver en esto, es un programa de lo más normal y no influye para nada en otros.
El problema debe de estar en el propio IDE. Alguna configuración que hayas modificado o algo por el estilo.

PD: Ya que está:
  • Las variables es recomendable declararlas locales, dentro de la función main().
  • Este es el escenario típico para usar un for() en vez de un while(). Además es mejor usar las funciones length() o size() antes que sizeof().
Código
  1. for(int i = 0; i < cadena.length(); ++i) {
  2. //...
  3. }
  • No es recomendable usar system("pause"). Utiliza cin.get() en su lugar.
  • Puedes acortar las asignaciones.
Código
  1. // Las dos lineas obtienen el mismo resultado. Esto se puede hacer con otros operadores y otros tipos de variables
  2. numeros = numeros + loquesea;
  3. numeros += loquesea;


Título: Re: Código que se repite dos veces y no sé porqué
Publicado por: snoopty en 4 Diciembre 2021, 06:11 am
Gracias !!!