Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

laurinha

gerar números para a mega sena

Recommended Posts

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.