Jump to content

Vector Aleatorio


zecapistolas
 Share

Recommended Posts

zecapistolas

Boa Noite....

Preciso aki d uma ajudazinha: ?

1. Criar um vector, que contenha este números, um dois tres quatro cinco seis sete oito nove dez......escritos em extenso, não em número!

2. Depois, aleatoriamente mostrar um desses números...

cumps  😉

Link to comment
Share on other sites

Qual é a tua dúvida exactamente? Para criares um vector com esses elementos, crias um vector de strings e fazes push_back dos elementos. Depois é utilizares a função rand para escolheres um índice do vector.

Desaparecido.

Link to comment
Share on other sites

zecapistolas

Então seria algo como isto?!

#include <iostream>
#include <string>
#include <vector>
#include <stdlib.h>

using std::cout; using std::endl;
using std::vector;
using std::string;

int main ()
{
    vector<string> vec;
    
    vec.push_back("um");
    vec.push_back("dois");
    vec.push_back("três");
    vec.push_back("quatro");
    vec.push_back("cinco");
    vec.push_back("seis");
    vec.push_back("sete");
    vec.push_back("oito");
    vec.push_back("nove");
    vec.push_back("dez");

    cout << vec.at(rand() % 10) << endl;
    
    return 0;
}

Mas assim, está a dar-m sempre o primeiro elemento....

cumps  😉

Link to comment
Share on other sites

Vê este codigo, usa o comando shuffle que mistura as coisas de um vector. bjs

#include <iostream>
#include <cstdlib>   // for srand and rand
#include <ctime>     // for time
using namespace std;

int main() {
    int card[52];    // array of cards;
    int n;           // number of cards to deal
    srand(time(0));  // initialize seed "randomly"
     
    for (int i=0; i<52; i++) {
        card[i] = i;  // fill the array in order
    }
    
    while (cin >> n) {    
        //--- Shuffle elements by randomly exchanging each with one other.
        for (int i=0; i<(52-1); i++) {
            int r = i + (rand() % (52-i)); // Random remaining position.
            int temp = card[i]; card[i] = card[r]; card[r] = temp;
        }
        
        //--- Print first n cards as ints.
        for (int c=0; c<n; c++) {
            cout << card[c] << " ";  // Just print number
        }
        cout << endl;
    }
   
   return 0;
}
Link to comment
Share on other sites

zecapistolas

Louise, obrigado pela sugestão...mas eu  :nono:  misturar as coisas de um vector, kero apenas escolher um elemento do vector, aleatoriamente...

E penso, já ter encontrado a solução, que eu preciso....faltava a parte do "time"...

#include <iostream>
#include <string>
#include <vector>
#include <cstdlib>
#include <ctime> 

using std::cout; using std::endl;
using std::vector;
using std::string;

int main ()
{
    vector<string> vec;
    srand(time(0));
    
    vec.push_back("um");
    vec.push_back("dois");
    vec.push_back("três");
    vec.push_back("quatro");
    vec.push_back("cinco");
    vec.push_back("seis");
    vec.push_back("sete");
    vec.push_back("oito");
    vec.push_back("nove");
    vec.push_back("dez");

    cout << vec.at(rand() % 10) << endl;
    
    return 0;
}

cumps  😉

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.