WagCez 0 Denunciar post Postado Junho 11, 2011 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
quitZAUMMM 18 Denunciar post Postado Junho 24, 2011 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