Ir ao conteúdo
  • Cadastre-se

MOBLEY

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

1
  1. Olá, estou aprendendo agora a trabalhar com C, estou fazendo um projeto de uma Mega sena, mas estou tendo alguns problemas em programar por não saber muito bem ainda, "Estou começando a aprender agora", o trabalho já esta quase pronto só falta alguns topicos que não estou conseguindo fazer. Segue o codigo abaixo e uma imagem do que tem que fazer no trabalho: O que está faltando no trabalho é o topico B, C, D e o 4. O B e o C so esta dando valores errados então precisa de correção, so que não sei o que fazer, e os outros topicos eu não consegui fazer. Se alguem conseguir me ajudar ficarei muito grato. #include<stdlib.h> #include<time.h> #include<stdio.h> #include<string.h> #define TRUE 1 #define FALSE -1 #define quantidadeDeNumerosDaSorte 6 #define quantidadeDeParticipantes 3 #define limitadorNumeroDaSorte 60 #define N 5000 #define countJogosLinha 5000 #define countJogosColuna 6 // declaração estrutura participante, que será utilizada para gravar de forma organizada e conjunta os dados de cada jogador. struct participante { int cpf; char nome[100]; int numerosBilhete[quantidadeDeNumerosDaSorte]; }; // declaração dos métodos que serão utilizados posteriormente int CapturarParticipantesSorteio(void); int GeraNumerosDaSorte(void); int VerificaSeHouvePremiado(void); // vetor que guardará todos os participantes registrados na função CapturarParticipantesSorteio() struct participante arrayParticipantes[quantidadeDeParticipantes]; // vetor que armazenará os numeros premiados da loteria. Esses numeros serão o alvo de todos os participantes para obter o prêmio. int bilhetePremiado[quantidadeDeNumerosDaSorte]; int main(void) { int num[60]; int NumJogo[N][6], Jogo01[N][6], i, S, b, Ax; char existente; int x, y; int jogos[countJogosLinha][countJogosColuna]; int vetorOrdenado[6]; int matrizCountDupla[61][61]; int vetoraux[15], q, w, aux; for (i = 0; i < quantidadeDeNumerosDaSorte; i++) num[i] = 0; srand(time(NULL)); printf ("Números da sorte: "); // gerando os números da sorte for (i = 0; i < N; i++) { for (S = 0; S < 6; S++){ do{ NumJogo[i][S] = rand() % 60 + 1; existente = 'N'; for (b = 0; b < S; b++) // verificar se o numero ja foi sorteado if (NumJogo[i][S] == NumJogo[i][b]) existente = 'A'; } while (existente == 'A'); // para nao ter numero repetidos no sorteio Jogo01[i][S] = NumJogo[i][S]; num[NumJogo[i][S]-1]++; } } printf("Jogos Sorteados\n"); for (i=0; i<N; i++){ printf("Jogo %d: ", i+1); for (S=0; S<6; S++) printf("%d ", NumJogo[i][S]); printf("("); for (S=0; S<6; S++) printf("%d ", Jogo01[i][S]); printf(")\n"); } printf("\n\n"); for(i=0;i<60;i++){ printf("Número %i = %i vezes.\n", i+1, num[i]); } printf("\n\n"); // 15 duplas unicas que mais sairam for (i = 0; i < 61; i++) { for (S = 0; S < 61; S++) { NumJogo[i][S] = 0; } } for(x = 0; x < countJogosLinha; x++){ for(y = 0; y < countJogosColuna; y++){ vetorOrdenado[y] = NumJogo[x][y]; } } for (i = 0; i < 61; i++) { for (S = 0; S < 61; S++) { //para comparar os numeros com os demais numeros da matriz; if (vetorOrdenado[0] == i && vetorOrdenado[1] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; if (vetorOrdenado[0] == i && vetorOrdenado[2] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; if (vetorOrdenado[0] == i && vetorOrdenado[3] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; if (vetorOrdenado[0] == i && vetorOrdenado[4] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; if (vetorOrdenado[0] == i && vetorOrdenado[5] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; // if (vetorOrdenado[1] == i && vetorOrdenado[2] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; if (vetorOrdenado[1] == i && vetorOrdenado[3] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; if (vetorOrdenado[1] == i && vetorOrdenado[4] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; if (vetorOrdenado[1] == i && vetorOrdenado[5] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; // if (vetorOrdenado[2] == i && vetorOrdenado[3] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; if (vetorOrdenado[2] == i && vetorOrdenado[4] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; if (vetorOrdenado[2] == i && vetorOrdenado[5] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; // if (vetorOrdenado[3] == i && vetorOrdenado[4] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; if (vetorOrdenado[3] == i && vetorOrdenado[5] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; // if (vetorOrdenado[4] == i && vetorOrdenado[5] == S) matrizCountDupla[i][S] = matrizCountDupla[i][S] + 1; } } for (i = 0; i < 61; i++) { for (S = 0; S < 61; S++) { if (matrizCountDupla[i][S] > 0){ printf("\nDuplas %.2d e %.2d -> %.3d\n", i, S, Jogo01[i][S]); } } } printf("\n\n"); // Codigo para ordenar os 15 numeros unicos mais sorteados em ordem crescente num[i] = vetoraux[q]; for (q = 0; q < 15; q++){ for (w = q+1; w < 15; w++){ if (vetoraux[q] < vetoraux[w]){ aux = vetoraux[q]; vetoraux[q] = vetoraux[w]; vetoraux[w] = aux; } } } for (q = 0; q < 15; q++){ printf("\nNumeros unicos mais sorteado: %i = %i", q+1, vetoraux[q]); } printf("\n\n"); CapturarParticipantesSorteio(); VerificaSeHouvePremiado(); } //CapturarParticipantesSorteio(); int CapturarParticipantesSorteio(void){ // Capturando nome, CPF e números da sorte dos participantes do sorteio for (int participanteCorrente = 0; participanteCorrente < quantidadeDeParticipantes; participanteCorrente++) { printf ("Nome do %dº participante: ", participanteCorrente + 1); scanf("%s", arrayParticipantes[participanteCorrente].nome); printf ("CPF do %dº participante: ", participanteCorrente + 1); scanf("%d", &arrayParticipantes[participanteCorrente].cpf); // Solicita todos os numeros da sorte do participante X for (int geradorNumeroDaSorte = 0; geradorNumeroDaSorte < quantidadeDeNumerosDaSorte; geradorNumeroDaSorte++) { printf ("%d/%d número da sorte: ", geradorNumeroDaSorte, quantidadeDeNumerosDaSorte); scanf("%d", &arrayParticipantes[participanteCorrente].numerosBilhete[geradorNumeroDaSorte]); } printf ("Participante %s cadastrado com sucesso \n \n", arrayParticipantes[participanteCorrente].nome); } } // para verificar os ganhadores do sorteio int VerificaSeHouvePremiado(){ printf ("\n \n Verificando se houveram premiados... \n \n "); // percorre cada participante for (int participanteCorrente = 0; participanteCorrente < quantidadeDeParticipantes; participanteCorrente++) { // Assume que o participante é vencedor e testa esse fato na logica abaixo int participanteVencedor = TRUE; // percorre os numeros do bilhete premiado para identificar se o participante possui todos. for (int numeroBilhetePremiado = 0; numeroBilhetePremiado < quantidadeDeNumerosDaSorte; numeroBilhetePremiado++) { int participantePossuiNumeroPremiado = FALSE; // percorre os numeros escolhidos pelo participante para comparar com os numeros do bilhete premiado. for (int NumJogo = 0; NumJogo < quantidadeDeNumerosDaSorte; NumJogo++) { // checa se o participante possui um dos numeros da sorte if (bilhetePremiado[numeroBilhetePremiado] == arrayParticipantes[participanteCorrente].numerosBilhete[NumJogo]) { participantePossuiNumeroPremiado = TRUE; } } // caso o participante não possua um dos numeros da sorte, já assume que ele não levou o premio. if (participantePossuiNumeroPremiado == FALSE){ participanteVencedor = FALSE; } } // Caso a variavel participanteVencedor continue Verdadeira mesmo após o teste do bilhete premiado e do bilhete do participante, assume que o participante é um dos vencedores. if (participanteVencedor == TRUE){ printf ("%s venceu! \n", arrayParticipantes[participanteCorrente].nome); } } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...