gyba 0 Denunciar post Postado Junho 18, 2011 Olá! O seguinte: não to conseguindo achar essa solução em parte alguma da internet e acho que não é de difícil solução. Preciso colocar uma função srand dentro de um laço(for) para que o programa me gere 3 números aleatórios, um por vez. O que acontece é que nesse código abaixo ele gera sempre os 3 números iguais. Acho que é pq a função srand do jeito que está precisa de pelo menos um segundo de intervalo entre os randoms: #include<iostream.h> #include<conio.h> int main() { int num = 0, cont; for(int t=0;t<3;t++){ srand(time(NULL)); for (cont = 0; cont < 2; cont++) num = rand() % 4; cout<<" "<<num<<endl; switch(num){ case 0: cout<<"Zero!"<<endl; break; case 1: cout<<"Um!"<<endl; break; case 2: cout<<"Dois!"<<endl; break; case 3: cout<<"Tres!"<<endl; break; default: cout<<"Nada!"<<endl; } } cin.get(); return(0); } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Junho 24, 2011 Ao meu ver não está errado.. você apenas está verificando o ultimo número, pois ele que vai passar no switch. http://www.vivaolinux.com.br/dica/Gerando-numeros-aleatorios-em-C []s Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Junho 26, 2011 Você não utiliza srand(time(NULL)) mais de uma vez. Só uma, e ele está no for, então está utilizando mais de uma vez. Coloque antes do for. Acho que de todo jeito deve continuar na mesma, mas aprender a prática correta é sempre algo bom... Além disso, você não precisa incluir a biblioteca <conio.h>, e você está incluindo a biblioteca <iostream> errado. Em headers da C++, você não põe o ".h". Outra coisa, se não estou enganado você precisa incluir o header <cstdlib> para usar a função srand() e a função rand(), que vocẽ não incluiu. Então a função não funcionaria, não é? Além disso, para usar a função time() você precisa incluir o header <ctime>, que você não incluiu. Então você não poderia usar a função, não é? Também não entendi a sua intenção com esse for: for (cont = 0; cont < 2; cont++) Corrigindo o código, ficaria assim (não chequei no compilador): #include <iostream> #include <cstdlib> #include <ctime> int main() { int num = 0, cont; srand(time(NULL)); for(int t=0;t<3;t++) { num = rand() % 4; cout<<" "<<num<<endl; switch(num) { case 0: cout<<"Zero!"<<endl; break; case 1: cout<<"Um!"<<endl; break; case 2: cout<<"Dois!"<<endl; break; case 3: cout<<"Tres!"<<endl; break; default: cout<<"Nada!"<<endl; } } cin.get(); return(0); } Test aê ;D Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites