Ir ao conteúdo

Posts recomendados

Postado

Boa noite pessoal, alguém pode me ajudar na construção de um programa para sortear uma palavra pre definida.

por exemplo.

 

char palavra[2][30] = {"Programação","C++"};

 

como eu faria pra sortear uma dessas palavras?

  • Amei 1
Postado

@Ga_bryel    você pode usar um gerador de números aleatórios de acordo com a quantidade de palavras que você queira sortear , e nesse caso aí são apenas duas , então gere um número de zero até hum , e você pode imprimir a palavra que esteja na posição indicada pelo número gerado pela função , numero = rand() % 2 ,  que resultará ou no número zero , ou no número hum , e imprimirá a palavra sorteada  , cout<<palavra[numero];

  • Amei 1
Postado

@devair1010 consegui fazer desse seu jeito. usei um laço for para ver se todas palavras estavam sendo selecionadas, mas percebi que algumas foram repetidas e outras nao apareceram. Usei 5 palavras.

 

int geradorDeNumero(int numero){
    
    char palavraSecreta[5][30]= {"Programacao","C++","Hello","Notebook","Relogio"};
    int palavras = 5;
    for(int i = 0;i < palavras; i++){
    numero = rand() %5;
    cout<<palavraSecreta[numero]<<endl;
    }
//criei essa função para executar o gerador
}

 

 

Captura de tela de 2020-02-22 12-15-39.png

  • Curtir 1
Postado

Pode ser feito assim.

 

#include <iostream>
#include <string>
#include <ctime>

using namespace std;

int main()
{
    const int NUM_PALAVRAS = 5;
    const string PALAVRAS[NUM_PALAVRAS] = {
        {"Programacao"},
        {"C++"},
        {"Hello"},
        {"Notebook"},
        {"Relogio"}
    };

    srand(static_cast<unsigned int>(time(0)));
	int NUMERO = (rand() % NUM_PALAVRAS);
    string PALAVRASECRETA = PALAVRAS[NUMERO];

    int TAM = PALAVRASECRETA.size();

    for(int i = 0;i < TAM; i++) {
        int INDICE = (rand() % TAM);
        char TEMP = PALAVRASECRETA[INDICE];
        PALAVRASECRETA[INDICE] = TEMP;
    }

    cout << PALAVRASECRETA << endl;

    return 0;
}

 

  • Curtir 1
  • Obrigado 1
Postado

@Ga_bryel      repetiu por que precisa colocar o comando 

#include <ctime>
/* e dentro da função main coloque */  
srand( time( NULL ) );  /* só precisa uma vez em todo o programa */
numero = rand() % 5;  

então seu código poderia ser assim  :

#include <iostream>
#include <ctime>
using namespace std;
int geradorDeNumero(){
    int numero;
    char palavraSecreta[5][30]= {"Programacao","C++","Hello","Notebook","Relogio"};
    int palavras = 5;
    for(int i = 0;i < palavras; i++){
        numero = rand() % 5;
        cout<<palavraSecreta[numero]<<endl;
    }
}
int main(){
    int numero;
    srand(time(NULL));
    char palavra[2][30] = {"Programação","C++"};
    for(int j=0;j<10;j++){
        cout<<rand()%100<<" ";
    }
    numero = rand() % 5;
    cout<<"\n\ngerou a posicao da palavra\n"<<endl;
    cout<<palavra[numero]<<"\n\n"<<endl;

    geradorDeNumero();
    getchar();
    system("taskkill /IM cb_console_runner.exe");/* no codeblock funcionna */
    return 0;
}

e como vai gerar cinco números é bem provável que alguma palavra , se repita mesmo .

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!