¿Como puedo hacer para que se generen numeros al azar una y otra vez?, he estado intentandolo pero siempre se terminan repitiendo los numeros y la posicion, he aqui el codigo:
#include <conio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(){
int L1,L2,L,num1,masal,num2,num,numM=1,a,pos;
char op;
do{
system("cls");
L1=50+rand()%150; L2=50+rand()%150;
L=L1+L2;
cout<<"Limite escogido: "<<L<<"\n";
for(a=1;a<=L;a++){
masal=rand()%10+1; num1=rand()%350+masal; num2=rand()%350+masal;
num=num1+num2;
cout<<a<<". "<<num<<"\n";
if(num>numM){
numM=num;
pos=a;
}
}
cout<<"El numero mayor esta en la posicion "<<pos<<" y es el: "<<numM<<"\n";
cout<<"\n¿Desea repetir el ejercicio?\nSi (s)\nNo (Pulsar cualquier otra tecla)\n";
cin>>op;
}while(op=='s');
return 0;
}
primero... en pc no hay tal cosa como numeros 100% al azar... es un problema que lleva años dicutiendose... lo que buscas es que se generen numeros pseudo-aleatorios diferentes para cada caso...
el problema es que rand siempre va a comenzar en el mismo punto... y como esto no es más que una aplicación simple y no requiere más profundidad ni analisis, puedes usar srand() que te permite inicializar los numeros de rand desde un punto basado en el tiempo del PC
aqui un ejemplo y su uso
http://www.cplusplus.com/reference/cstdlib/srand/ (http://www.cplusplus.com/reference/cstdlib/srand/)
/* srand example */
#include <stdio.h> /* printf, NULL */
#include <stdlib.h> /* srand, rand */
#include <time.h> /* time */
int main ()
{
printf ("Primero Numero: %d\n", rand()%100);
srand (time(NULL));
printf ("Numero pseudo-aleatorio: %d\n", rand()%100);
srand (1);
printf ("Nuevamente el primer numero: %d\n", rand()%100);
return 0;
}
tienes que llamar a la funcion srand()
int hora = time(NULL);
// semilla de rand();
srand(hora); //almacenamos el valor del reloj del sistema esto con la intencion de poder
//generar numeros aleatorios
int n=0;
int m=0;
n = rand()%100; //multiplo
m = rand()%100;
antes del for
coloca
numM=1;