• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

2eve

[dúvida simples] random sempre da 0

2 mensagens neste tópico

tenho um problema o random devolve sempre 0  :cheesygrin:

#include <iostream>
#include <stdlib.h>
#include <windows.h>
using namespace std;

bool done = false;
int numero;
int escolha;


int dica();
void menu();
int numeropc(int min, int max);

int main()
{
    int opcao;
    srand(GetTickCount());
    while(!done){
    cout <<"Acerta números 0.1\n"<< endl;
    cout <<"1 - Novo \n2-Sair" << endl;
    cin >> opcao;
    switch (opcao){
           case 1:{ menu();
           numero = numeropc(1, 50);
           break;}
           case 2:{ done = true;
           break;}
           default:{ cout <<"Escolha invalida"<< endl;
           break; }
           }
           cin.get();
    return 0;
}
}

int numeropc(int min, int max){
    int random;
    random = rand() % (max + 1) + min;
    return random;
     }
     
     
void menu(){
cout <<"Insira um número"<< endl;   
    cin >> escolha;
    if (escolha == numero)cout << "GANHOU" << endl;
    else dica();
    cin.get();
    cin.get(); 
}

int dica()
{if (escolha < numero){
    cout<<"muito baixo"<< endl;
menu();
}
else {cout <<"muito alto"<< endl;
menu();
}    
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta assim:

srand(time(0));
random = rand();
num = (random % limSup) + limInf;

Sendo limSup e linInf os limites superior e inferior do número que se quer gerar. E não esquecer de incluir a time.h da stdlib do C.

Desta maneira nunca me falhou...

:ipool:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora