Nesse cpp::daily de hoje vamos mostrar uma forma mais moderna e profissional de fazer isso com C++.
Nós já fizemos isso em outras situações com: C e também com Shell Script, mas além daqueles códigos estarem defasados, vamos atualizar isso com C++, e se você jogar e ganhar, lembre-se de me dar pelo menos 1% do seu ganho! 😃
O processo é bem simples quando usamos as ferramentas certas e elas são:
Primeira coisa é criar os 6 números randômicos. Basta criar um vector
vazio, fazer um loop while
onde a condição é adicionar o número randômico gerado por randint
na faixa de 1 à 60 que são os números máximos da Mega-Sena e nos mostrar fazendo um loop para exibir, e pode ser feito com esse código inicial:
#include <iostream>
#include <ctime>
#include <experimental/random>
#include <vector>
int main(){
std::srand(std::time(nullptr));
std::vector<int> nums;
// geramos os números
while( nums.size() < 6 ){
nums.push_back( std::experimental::randint(1,60) );
}
// exibimos os números
for( auto &y : nums ){
std::cout << y << ' ';
}
std::cout << '\n';
return 0;
}
Mas o problema desse código é que números poderão ser repetidos e isso não é legal. Então, pra resolver isso vamos verificar se o número está no nosso vector
e se não estiver incluímos, senão repete até não encontrar, para isso usaremos o std::find
da biblioteca algorithm
e agora armazenaremos o número randômico na variável x
:
#include <iostream>
#include <ctime>
#include <experimental/random>
#include <vector>
#include <algorithm>
int main(){
std::srand(std::time(nullptr));
int x;
std::vector<int> nums;
while( nums.size() < 6 ){
x = std::experimental::randint(1,60);
if( std::find( nums.begin(), nums.end(), x ) != nums.end() ){
continue;
}else{
nums.push_back( x );
}
}
for( auto &y : nums ){
std::cout << y << ' ';
}
std::cout << '\n';
return 0;
}
Quase perfeito, a única coisa que precisamos alterar é exibir os números em ordem crescente pra ficar mais profissa mesmo, né não?! Então vamos de std::sort → std::sort( nums.begin(), nums.end() );
:
#include <iostream>
#include <ctime>
#include <experimental/random>
#include <vector>
#include <algorithm>
int main(){
std::srand(std::time(nullptr));
int x;
std::vector<int> nums;
while( nums.size() < 6 ){
x = std::experimental::randint(1,60);
if( std::find( nums.begin(), nums.end(), x ) != nums.end() ){
continue;
}else{
nums.push_back( x );
}
}
std::sort( nums.begin(), nums.end() );
for( auto &y : nums ){
std::cout << y << ' ';
}
std::cout << '\n';
return 0;
}
Agora sim está tudo completo, show né?! Se quiser ainda deixe a condição do if else
como ternária pra ficar like a boss!.
Por hoje é só, são pequenas doses diárias que farão sempre nos manter antenado com o C++ !
Então se inscreva nos nossos Cursos de C++ Moderno . Você aprender criar:
Acesse o endereço: