1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Gerar hipoteses do totobola

Discussão em 'Programação' iniciada por n0ob, 19 de Maio de 2012. (Respostas: 2; Visualizações: 1268)

  1. Gostaria de saber como uso o rand() com apenas o 1 e o 2 e depois o X para 13 chaves do totobola...
    Contudo ao fazer deveria colocar %c / %d conforme fosse X ou (1,2)
    Como resolvo?


    Cumps;
     
    Última edição: 19 de Maio de 2012
  2. mauro1855

    mauro1855 I'm cool cuz I Fold

    Não sei se percebi bem a questão, mas queres uma função que te gere, aleatoriamente 1, 2 ou X?

    Podes fazer uma função que gere um numero entre 1 e 3, e caso gere 3, consideras X, por exemplo:

    Código:
    char totobola_func(){
    
    int valor = 0;
    buffer[2];
    
    while(valor == 0){
        valor = rand()%4;
    }
    
    if(valor == 3) return 'X';
    else{
        sprintf(buffer, "%d", valor);
        return buffer[0];
    }
    
    }
    Repara que esta função retorna um caracter, cabe-te a ti depois no programa principal ver o que é que a função retornou e, caso necessário e caso seja número, converter para inteiro.

    Cumps
     
    Última edição: 19 de Maio de 2012
  3. mauro1855 repare que o seu código gera numeros entre 0 e 4!! E se executares o teu código vezes seguidas dá sempre o mesmo resultado!! É necessário colocar uma semente!!

    Aqui fica uma sugestão:

    #include <stdio.h>
    #include <time.h>


    int totobola(){
    return rand()%3+1;
    }


    main(){
    int nvezes=13,i,aux;
    srand ( time(NULL) ); //colocar uma semente!!
    for (i=0;i<nvezes;i++){
    aux=totobola();
    if (aux==3)
    printf("x\n");
    else printf("%d\n",aux);
    }
    }

    Cumps
     

Partilhar esta Página