Ir para conteúdo

POWERED BY:

Arquivado

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

WagCez

Algoritmo Complexo - Loteria Flexivel

Recommended Posts

INTRODUÇÃO

Uma população não satisfeita com os jogos padronizados da loteria fornecidos pelo governo local decidiu criar a sua própria loteria de forma bastante flexível e configurável, pois assim, argumentavam os cidadãos, o jogo ficaria mais emocionante e atrairia mais jogadores. As informações de uma rodada no jogo são: uma sequência de números sorteada, várias sequências de números que representam as apostas e as categorias de acertos que classificam a aposta de acordo com a quantidade de números pela possibilidade de configurar a quantidade de npumeros sorteados, a quantidade de números apostados, as categorias e a faixa de números sorteados e apostados

 

ENTRADA

a Primeira linha deverá conter a quantidade de números sorteados, a faixa permitida (composta por valor inferior e valor superior) e os numeros sorteados em ordem crescente.

Exemplo de primeira linha: "04 01 10 04 06 09 10" = 4 números sorteados de 1 a 10, são eles 04, 06, 09 e 10

A segunda linha contém a quantidade de categorias seguidas das próprias categorias que classificam as apostas ganhadoras

Exemplo de segunda Linha: "03 00 03 04" = 3 categorias onde as apostas ganhadores deverão ter 0(nenhum), 3 ou 4 números iguais aos dorteados

A terceira linha contém a quantidade de apostas

A quarta linha em diante contém as apostas, cada uma representada pela quantidade de números apostados seguida dos números apostados

Admita como limites máximos:

*50 números sorteados

*51 categorias

E admitido previamente que:

*Os números sorteados estão dentro da faixa permitida para números sorteados

*Onúmero que representa a categoria é no minimo 00(zero) e no máximo a quantidade de números sorteados

 

SAÍDA

O programa deverá gerar um inteiro representando cada categoria com seus respectivos números de apostas ganhadoras. A formatação dos dados de saída deve ter

(nºda categoria)(espaço simples)(nº de ganhadores da categoria)(\n)

 

 

 

 

Exemplo de entrada

04 01 10 04 06 09 10

03 00 03 04

05

04 03 06 09 10

06 01 02 03 06 09 10

04 05 07 09 10

07 01 04 05 06 07 09 10

04 02 03 05 08

 

EXEMPLO DE SAÍDA

0 1

3 2

4 1

 

 

 

Caso alguem não tenha entendido, vou explicar

na primeira linha o 4 significa que quantiade de números sortados, o 1 e 10 simbolizam os limites do sorteio dos números, e o resto da linha são os números já sorteados

na segunda linha o 3 significa quantas categorias estabelecerá os vencedores e essas categorias são: quem não acertar nenhum (0) numero, quem acertar 3 ou quem acertar os 4 (basta olhar na saída a quantidade de vencedores de cada categoria)

a terceira linha é quantidade de apostas

e depois na quarta linha em diante significa que o 1º numero de cada linha simboliza quantos numeros uma pessoa apostou seguido de suas apostas

 

 

Consegui representar no algoritmo (isso é arquivo), porém tem uns números que aparecem e não tem nada a ver e não consigo contar os vencedores (só aparece o 0 em cada categoria, dferente do exemplo de saída)

Obs: criem um Arquivo.txt para me ajudar

 

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main(){
FILE*esp;
int n, inicio, fim, i, numsort[50], quantcat, cat[51], quantapostas, numapostados, j, k;
esp=fopen("especial.txt", "r");
  if(esp!=NULL){
     printf("Arquivo Aberto\n\n");
  }
  else{
     printf("O arquivo nao foi aberto\n\n");
  }
fscanf(esp,"%d",&n);
printf("%d ",n);
fscanf(esp,"%d", &inicio);
printf("%d ", inicio);
fscanf(esp,"%d",&fim);
printf("%d ",fim);
  for(i=0;i<n;i++){
      fscanf(esp, "%d",&numsort[i]);
      printf("%d ",numsort[i]);
  }
printf("\n");
fscanf(esp,"%d",&quantcat);
printf("%d ",quantcat);
  for(i=0;i<quantcat;i++){
      fscanf(esp, "%d",&cat[i]);
      printf("%d ",cat[i]);
  }
printf("\n");
fscanf(esp,"%d",&quantapostas);
printf("%d ",quantapostas);
printf("\n");
  for(i=0;i<quantapostas;i++){
      fscanf(esp, "%d", &numapostados);
      printf("%d ", numapostados); 
}
printf("\n");
fscanf(esp,"%d",&quantapostas);
printf("%d ",quantapostas);
  for(i=0;i<quantapostas;i++){
      fscanf(esp, "%d", &numapostados);
      printf("%d ", numapostados); 
      }
      printf("\n");
  int matriz[quantapostas][numapostados], cont;
   cont=0;
    for(j=0;j<numapostados;j++){
      fscanf(esp,"%d", &quantapostas);
      printf("%d ", quantapostas);
  for(i=0;i<quantapostas;i++){
      fscanf(esp,"%d", &matriz[j][i]);
      printf("%d ",matriz[j][i]);
      cont++;
      }
      printf("\n");

  }
  printf("\n");
  printf("%d", matriz[i][j]);
int vet[i],vet2[j], l;
for(i=0;i<quantcat;i++){
vet[i]=0;
}
for(i=0;i<quantapostas;i++){

    for(j=0;j<51;j++){
  if(numsort[i]==matriz[i][j]){
   cont++;
}
}
}
          for(l=0;l<quantcat;quantcat++){
             if(cont==cat[l]){
                              vet[l]++;
                              }
                              }
                              cont=0;    
for(i=0;i<3;i++){
   printf("%d %d\n",cat[i],vet[i]);
}

system("pause");
}

 

Agradeço a ajuda

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

mano cria um arquivo txt e le ele pelo dos qnd for mandar rodar o programa fica + facil..

nao sei se isso é de facul ou n..

tem desafios parecidos em alguns sites da net, e tds com juizes online..

caso seja não use o system("pause") tbm.

 

evolui no algoritmo?

 

 

[]s

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.