Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Foto:

Simulação da mega sena

  • Por favor, faça o login para responder
5 respostas neste tópico

#1 d.p.p

d.p.p
  • Membros
  • 3 posts

Postado 18 junho 2010 - 19:53

Estou fazendo um trabalho que preciso simular a entrada de dados de apostadores e sorteio da megasena, conferindo se saiu ou nao um ganhador...

por enquanto meu código está assim


#include <stdio.h>;
#include <stdlib.h>;
#include <string.h>;
#include <time.h>;


 //FUNÇAO PRINCIPAL

main()
{
char nome[100][50], cidade[100][50], estado[100][50];
int cont=0, dezenas[100][6], contdados=0;

 
 //DADOS DO JOGADOR
 
printf("DIGITE SEU NOME:\n");
fflush(stdin);
gets(nome[contdados]);
while(nome[contdados][0]!='\0')
{
printf("DIGITE SUA CIDADE:\n");
fflush(stdin);
gets(cidade[contdados]);
printf("DIGITE SEU ESTADO:\n");
fflush(stdin);
gets(estado[contdados]);


 //APOSTAS DO JOGADOR

for(cont=0;cont<6;cont++)
{
printf("Digite a dezena apostada numero %d: \n",cont+1);
scanf("%d",&dezenas[cont]);
}
contdados++;
printf("DIGITE SEU NOME:\n");
fflush(stdin);
gets(nome[contdados]);
}

 //SORTEIO
{
 int seq[6]={0}, i, j;
 int a;
 srand(time(NULL));
 seq[0]=(rand()%60)+1;
 i=1;
 while(i<6){
 a=(rand()%60)+1;
 j=0;
 while((a!=seq[j]) && (seq[j]!=0) && (j<=6))
 j++;
 if ((seq[j]==0) && (j<=6)){
 seq[j]=a;
 i++;
 }
 }
 for(i=0; i<6; i++)
 {
 printf("Numero sorteado %d - %d\n", i+1, seq[i]);
 }
}

 //ORDEM CRESCENTE DOS NUMEROS SORTEADOS E DAS APOSTAS


 //IMPRESSAO DE DADOS


 
 
 
 
 
system("PAUSE");
 }



falta colocar os numeros apostados e sorteados em ordem crescente(o enunciado do trab pede isso),verificar se houve ganhadores e se sim, imprimir os dados do ganhador. Só que nessa parte eu to tomando uma surra...

ps: faço eng civil, é uma cadeira de programação, portanto se puderem ajudar da forma mais clara possível ficaria muito grato, pois meus conhecimentos são limitados!!

agradecendo desde ja

abraçoo
  • 0

#2 _Isis_

_Isis_
  • Moderadores
  • 2.324 posts

Postado 18 junho 2010 - 21:06

Não use fflush(stdin) e nem gets. Tem um tópico no fórum falando sobre isso.

P/ ordenar coisas você pode procurar por insertion sort.
  • 0

#3 d.p.p

d.p.p
  • Membros
  • 3 posts

Postado 18 junho 2010 - 21:31

mmm vou dar uma lida... está nessa seção mesmo? a minha professora que disse pra ursar fflush e gets..

e quanto a verificação se houve algum ganhador? alguma luz?

obg

abrs
  • 0

#4 _Isis_

_Isis_
  • Moderadores
  • 2.324 posts

Postado 18 junho 2010 - 22:28

Se sua professora disse p/ usar isso, peça p/ ela se jogar fora ;)
http://forum.imaster...-e-fflushstdin/

Oras, use um if p/ verificar se o cara acertou os números...
  • 0

#5 d.p.p

d.p.p
  • Membros
  • 3 posts

Postado 19 junho 2010 - 17:24

mmm, um if que compare simultaneamente todos os numeros apostados com os numeros sorteados certo? mas como eu faço essa comparação para todas as dezenas de todos os apostadores?

nao entendo como posso comparar as dezenas do apostador1, do apostador2, do apostador3, etc... com as dezenas sorteadas!

e no caso eu teria que colocar qualquer código em void fora da funçao principal, qual seria a mais recomendada? eu teria que usar ponteiros depois?

obrigado pela ajuda!

cara ja li sobre como colocar em ordem crescente, mas to apanhando... alguem tem como dar um help?

esse erro significa o que?

cannot convert `int (*)[6]' to `int*' for argument `1' to `void ordenar_vetor(int*, int)'

tá assim

#include <stdio.h>;
#include <stdlib.h>;
#include <string.h>;
#include <time.h>;

void ordenar_vetor(int v[], const int tamanho=6)
{
     int i, j, temp;
     
     for(i = 0; i < tamanho - 1; i++){
             
         for(j = 0; j < tamanho - 1; j++){
             if(v[j] > v[j + 1]){
                 temp = v[j];
                 v[j] = v[j + 1];
                 v[j + 1] = temp;
             }
         }
     }
}

            //FUNÇAO PRINCIPAL

main()
{
char nome[100][50], cidade[100][50], estado[100][50];
int cont=0, dezenas[100][6], contdados=0;

            
            //DADOS DO JOGADOR
                
printf("DIGITE SEU NOME: ");
fflush(stdin);
gets(nome[contdados]);
while(nome[contdados][0]!='\0')
{
printf("DIGITE SUA CIDADE: ");
fflush(stdin);
gets(cidade[contdados]);
printf("DIGITE SEU ESTADO: ");
fflush(stdin);
gets(estado[contdados]);


            //APOSTAS DO JOGADOR

for(cont=0;cont<6;cont++)
{
printf("Digite a dezena apostada numero %d: ",cont+1);
scanf("%d",&dezenas[cont]);
}


int tamanho=6, i;
    /* ordena o vetor em ordem crescente */
    ordenar_vetor(dezenas, tamanho);
    
    /* mostra o vetor v ordenado */
    printf("\n\nVetor v em ordem crescente:\n");
    for(i = 0; i < tamanho; i++)
        printf("%d ", dezenas[i]);



contdados++;
printf("DIGITE SEU NOME: ");
fflush(stdin);
gets(nome[contdados]);
}

            //SORTEIO
{
int seq[6]={0}, i, j;
int a;
srand(time(NULL));
seq[0]=(rand()%60)+1;
i=1;
while(i<6){
        a=(rand()%60)+1;
        j=0;
        while((a!=seq[j]) && (seq[j]!=0) && (j<=6))
            j++;
            if ((seq[j]==0) && (j<=6)){
               seq[j]=a;
               i++;
        }
     }
for(i=0; i<6; i++)
     {
                 printf("Numero sorteado %d - %d\n", i+1, seq[i]);
     }
}

                //ORDEM CRESCENTE DOS NUMEROS E DAS APOSTAS
                



                //IMPRESSAO DE DADOS


      
      
      
      
      
system("PAUSE");
    }


quanto ao fflush e ao systempause, vou trocar tudo ao final do trab

alguma luz?????

Editado por quitZAUMMM, 21 junho 2010 - 10:40 .
Troca de tags de [quote] para [code]

  • 0

#6 quitZAUMMM

quitZAUMMM

    YES, WE CAN

  • Moderadores
  • 3.923 posts

Postado 21 junho 2010 - 10:41

void ordenar_vetor(int v[], const int tamanho=6)

se fosse pra definir um valor assim ele nem precisaria ser parametro neh.
você deu uma lida sobre funções?

[]s
  • 0