Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Playmaker en 10 Diciembre 2018, 04:26 am



Título: Ayuda con array
Publicado por: Playmaker en 10 Diciembre 2018, 04:26 am
Veran, en este codigo el ususario digita paises de cada continente para sortearlos a el mundial de fotball, pero me gustaria saber si me podrian suministrar alguna forma para que el listado elija una palabra al azar sin repetirla y la use para el sorteo, mi codigo es simple, pero soy nuevo en esto y no tengo ni idea como elegir algo al azar de una lista en un array

int main(int argc, char** argv) {
   string europa[12];
   string america [10];
    string africa [5];
   string asia [5];
   
   cout << "---------------------------" << endl;
   
    for( int a = 1 ; a <= 12;a++)
   {
   
   cout<<"digite los paises de europa"<<endl;
   cin>> europa[1];

    }
    for( int b = 1 ; b <= 10;b++)
   {
   
   cout<<"digite los paises de america"<<endl;
   cin>> america[1];

    }
    for( int b = 1 ; b <= 5;b++)
   {
   
   cout<<"digite los paises de africa"<<endl;
   cin>> africa[1];

    }   
     for( int b = 1 ; b <= 5;b++)
   {
   
   cout<<"digite los paises de asia"<<endl;
   cin>> asia[1];

    }
   
   
   
   
   
   
   getch();
   return 0;
   }


Título: Re: Ayuda con array
Publicado por: Playmaker en 10 Diciembre 2018, 04:32 am
olvide mencionar que en europa se eligen 4 equipos al azar de los 12 digitados por el ususario


Título: Re: Ayuda con array
Publicado por: K-YreX en 10 Diciembre 2018, 04:47 am
Que casualidad, recién registrado para preguntar lo mismo que en un tema de hace unas horas. Con un código que tiene exactamente los mismos errores de indexación. Pero a un mismo problema, una misma solución, el código entre etiquetas de "código GeSHi".

Para que no se diga, hasta te voy a dar una respuesta :rolleyes::
Código
  1. const int LIMITE_INFERIOR = 5;
  2. const int LIMITE_SUPERIOR = 10;
  3. int aleatorio = LIMITE_INFERIOR + rand() % (LIMITE_SUPERIOR - LIMITE_INFERIOR + 1);

PD: Los arrays en C/C++ empiezan en 0, no en 1 y por tanto llegan hasta uno menos de su capacidad...
Código
  1. int array[5] = {0,1,2,3,4};
  2. for(int i = 0; i < 5; i++)
  3.    cout << array[i] << endl;

Si por un casual este usuario es de la misma persona que el que ha abierto el otro tema para preguntar sobre el mismo programa y sigues sin usar etiquetas para el código te deseo suerte en tus próximos temas. Puede que alguien te ayude...  :silbar: