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

no se como finalizar este programa de c++

Estas en el tema de no se como finalizar este programa de c++ en el foro de C/C++ en Foros del Web. Este es el problema esta en c++: Escribir una funcion int bombo() que devuelve un numero aleatorio comprendido entre 0 y 50, distinto, cada nueva ...
  #1 (permalink)  
Antiguo 07/11/2007, 12:24
 
Fecha de Ingreso: noviembre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 0
no se como finalizar este programa de c++

Este es el problema esta en c++: Escribir una funcion int bombo() que devuelve un numero aleatorio comprendido entre 0 y 50, distinto, cada nueva llamada a la funcion.

#include <stdio.h>
#include <stdlib.h>

int bombo(void);

int main()
{
int numeros,contador;
randomize();
printf("seleccione el numero de numeros aleatorios quiere que aparezcan: ");
scanf("%i",&numeros);
for(contador=1;contador<=numeros;contador++)
printf("\neste es el numero seleccionado aleatoriamente: %i",bombo());


fflush(stdin);
getchar();
return 1;
}


int bombo(void)
{
return (random(49)+1);
}

me funciona el programa a la hora de seleccionar aleatoriamente los 50 numeros, pero se me repiten, como podria finalizar el programa de manera que no se repitan lo numeros aleatorios.

Última edición por xaji; 07/11/2007 a las 16:13 Razón: cambio de titulo
  #2 (permalink)  
Antiguo 07/11/2007, 12:43
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: no se como finalizar este programa

Ni random ni randomize son funciones de C.

Debes usar srand() y rand().
  #3 (permalink)  
Antiguo 09/11/2007, 07:14
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: no se como finalizar este programa de c++

Tanto con el randomize como con el srand los numeros aleatorios se repiten. Una opcion es controlarlos tu utilizando por ejemplo un array y comprobando cada numero generado con los que tienes guardados en el array

ej para generar 50 entre 1 y 50
int array[50],y,x,n;
y=1;
randomize();
do{

n=random(49) +1;
for(x=0;x<y&&array[x]!=n;x++);
if (x==y)
{
array[y]=n;
printf("%d",n);
y++;
}
}while (y<50);
  #4 (permalink)  
Antiguo 09/11/2007, 09:04
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: no se como finalizar este programa de c++

Los números generados por rand() no son aleatorios, pero lo parecen. En cualquier caso, "no" se repiten, al menos, no de manera evidente.

No postees código usando random() o randomize() porque no es estándar, por favor.
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 03:28.