laurinha 0 Denunciar post Postado Dezembro 11, 2006 oi pessoal, preciso fazer esse trabalhinho para a escola. me ajudem tah.. Trabalho da Mega Sena Gerar números ganhadores da Mega Sena. Para isso, montar um gerador de números randômicos, simulando uma quantidade, escolhida pelo usuário de sorteios anteriores. Das opções ao usuário de, além de ver os 6 números mais seguindo um padrão de 5 números por linha. obs: não estow conseguindo me digam uma maneira mais fácil, ou no que estou errando. #include<iostream>#include<stdlib.h>#include <cstdlib>#include<stdio.h>#include <cctype>#include <ctime>void fazSorteio(int[]);void mostraosMaiores(int[]);int sorteio[6];int main (){ bool continua = true; char voltar; const int arraySize = 60; int face, frequency[arraySize]={0}; srand (time(0)); int exemplo, sortear; while(continua){ printf("Quantas vezes deseja sortear: "); scanf(" %d", &sortear); for (int f = 1; f <= sortear; f++){ fazSorteio(sorteio); for(int f = 0; f <= 5; f++){ ++frequency[sorteio[f]]; } } for (face = 1; face <= arraySize; face = face + 5){ printf("%d %d %d %d %d\n", frequency[face-1], frequency[face],frequency[face+1],frequency[face+2],frequency[face+3]); } printf("\nDeseja saber que numeros foram mais sorteados \n1 = (sim) ou 2 = (nao) \n "); scanf("%d",&exemplo); switch (exemplo){ case 1:{ mostraosMaiores(frequency); break; } case 2:{ system("PAUSE"); return 0; } } printf("\nQuer realizar novo sorteio (S) para sim ou (N) para nao: "); scanf(" %c", &voltar); continua = (voltar =='S'); } system("PAUSE"); return 0;}void fazSorteio(int[]){ sorteio[0] = rand ()% 60; do{ sorteio[1] = rand ()% 60; }while(sorteio[0] == sorteio[1]); do{ sorteio[2] = rand ()% 60; }while((sorteio[0] == sorteio[2]) || (sorteio[1] == sorteio[2])); do{ sorteio[3] = rand ()% 60; }while((sorteio[0] == sorteio[3]) || (sorteio[1] == sorteio[3]) || (sorteio[2] == sorteio[3])); do{ sorteio[4] = rand ()% 60; }while((sorteio[0] == sorteio[4]) || (sorteio[1] == sorteio[4]) || (sorteio[2] == sorteio[4]) || (sorteio[3] == sorteio[4])); do{ sorteio[5] = rand ()% 60; }while((sorteio[0] == sorteio[5]) || (sorteio[1] == sorteio[5]) || (sorteio[2] == sorteio[5]) || (sorteio[3] == sorteio[5]) || (sorteio[4] == sorteio[5]));}void mostraosMaiores(int frequency[]){ int ns[6] = {0}; int st[6] = {0}; for (int f = 0; f < 60; f++){ int s,t; s = f + 1; t = frequency[f]; for (int g = 0; g < 6; g++){ int c,d; if (t > st[g]){ c = ns[g]; d = st[g]; ns[g] = s; st[g] = t; s = c; t = d; } } } printf("Numeros que foram sorteados mais vezes: %d %d %d %d %d %d \n", ns[0], ns[1], ns[2], ns[3], ns[4], ns[5]);} walew galera.. bjuxx Compartilhar este post Link para o post Compartilhar em outros sites
laurinha 0 Denunciar post Postado Dezembro 11, 2006 tbm é preciso mosrar quais os numeros que foram mais sorteados. Compartilhar este post Link para o post Compartilhar em outros sites
NorTheR 0 Denunciar post Postado Dezembro 11, 2006 otimiza a parte em que ele gera o numero, tá mto fora do padrão, bota um for e depois outro for para procurar se foi sorteado.não entendi foi sua duvida =O Compartilhar este post Link para o post Compartilhar em outros sites
laurinha 0 Denunciar post Postado Dezembro 11, 2006 minha duvida é gerar esses numeros..não consigo randonizar.nunca dah certo. Compartilhar este post Link para o post Compartilhar em outros sites
NorTheR 0 Denunciar post Postado Dezembro 11, 2006 beleza.. olha esse exemplosrand(time(NULL)); // pode ser opcional..for (a=0;a<3;a++) { printf("\n-------------------\n"); for (cont=0;cont<20;cont++) { aux[cont]=rand()%XXXX; printf("%d ",aux[cont]); } }se você colocar no lugar do XXXX, um numero qualquer, exemplo 20, ele vai te gerar numeros de 0 a 19 (lembre-se qnd você declara um vetor de 20 posições, ele vai de 0 a 19, o mesmo ocorre aí no rand)Se quiser excluir o 0, faça assim (caso o XXXX for 20):aux[cont]=rand()%(20-1)+1;aí vai te gerar de 1 a 19..aux[cont]=rand()%(20-7)+7;de 7 a 19.. etc.. Compartilhar este post Link para o post Compartilhar em outros sites
ViTiNhO 0 Denunciar post Postado Janeiro 30, 2007 O que eu precisaria alterar nesse programa para ele gerar os 15 numeros da lotofacil !!! Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Junho 20, 2009 Isis desculpa exclui seu post por engano, e n soube trazer de volta =/ aki no quote vai ele. srand(time(NULL)); // pode ser opcional.. for (a=0;a<3;a++) { printf("\n-------------------\n"); for (cont=0;cont<20;cont++) { aux[cont]=rand()%XXXX; printf("%d ",aux[cont]); } } O problema é que você não verifica se o número já foi gerado. No LInux dá p/ usar o random, pois o rand não é tão aleatório.... http://www.manpagez.com/man/3/random/ Sobre o link postado: não baixei o tal ebook porque estou na pós, mas duvido que contenha um algoritmo computacional, que é o foco do fórum. Compartilhar este post Link para o post Compartilhar em outros sites