Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Carregando comentários...