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

seleccionar elemento aleatorio de un array con C++

Estas en el tema de seleccionar elemento aleatorio de un array con C++ en el foro de C/C++ en Foros del Web. Hola como puedo generar seleccionar elementos aleatorios, sin seleccionarlo mas de una ves, por ejemplo: del array nums[]={2,3,6,7,9}; seleccionar aleatoria-mente el 6 entonces a la ...
  #1 (permalink)  
Antiguo 15/05/2011, 18:48
 
Fecha de Ingreso: enero-2009
Mensajes: 7
Antigüedad: 15 años, 4 meses
Puntos: 0
seleccionar elemento aleatorio de un array con C++

Hola como puedo generar seleccionar elementos aleatorios, sin seleccionarlo mas de una ves, por ejemplo:

del array nums[]={2,3,6,7,9};
seleccionar aleatoria-mente el 6
entonces a la siguiente ya no se podría seleccionar el 6 ....
seleccionar aleatoria-mente el 2
entonces a la siguiente ya no se podría seleccionar el 2 ....
  #2 (permalink)  
Antiguo 15/05/2011, 19:58
 
Fecha de Ingreso: enero-2009
Mensajes: 7
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: seleccionar elemento aleatorio de un array con C++

Bueno me repodo a mi mismo, aver si a alguien le sirve....

Código:
// extraer aleatorios c++.cpp: define el punto de entrada de la aplicación de consola.
//

#include "stdafx.h"
#include "iostream"
#include "cstdlib"
#include "ctime"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	srand(time(NULL));
	int nums[9]={1,3,2,4,9,7,8,3};
	int size=8;
	int ind;


	for(int i=0;i<=8;i++)
		cout<<nums[i]<<" ";

	while(size>0)
	{
		ind=rand()%size;

		cout<<" el numero escojido es "<<nums[ind]<<endl;

		int aux;

		while(ind<size)
		{
			nums[ind]=nums[ind+1];
			nums[ind+1]=0;
			ind++;
		}

		size--;


		for(int i=0;i<=8;i++)
			cout<<nums[i]<<" ";
	}
	
	cout<<endl;
	
	system("pause");
	return 0;
}

Etiquetas: aleatoria
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 16:06.