Compare values of a vector with a matrix

Asked

Viewed 374 times

1

I am new here and beginner in programming, I would like your help, I need to make an algorithm that simulates the mega sena, I must present a matrix with bettors and dozens of bets, a vector with the numbers of the draw, all with automatic draw and without repetition, and at the end of the algorithm show how many people hit 0, 1,2,3,4,5 and 6 tens.

My problem is to compare the values of the draw vector with the betting matrix and find out how many people hit 0 numbers and so on..

Follow what I’ve already done.

programa
{
     inclua biblioteca Util


     funcao inicio()
     {
          const inteiro apostadores = 100
          const inteiro nDezenasApostada = 6
          const inteiro dezenas = 6
          inteiro megaApostas[apostadores][nDezenasApostada]
          inteiro nSorteados[dezenas]
          inteiro zeroAcertos = 0
          inteiro umAcerto = 0
          inteiro doisAcertos = 0
          inteiro tresAcertos = 0
          inteiro quatroAcertos = 0
          inteiro cincoAcertos = 0
          inteiro seisAcertos = 0

// Preenche a matriz com numeros sorteados aleatórios e não repetidos 

          para (inteiro i = 0; i < apostadores; i++) {
               para (inteiro j = 0; j < nDezenasApostada; j++) {
                    inteiro numeros = Util.sorteia(1, 60)
                    inteiro contador = 0
                    enquanto (contador < nDezenasApostada) {
                         se (megaApostas[i][contador] == numeros) {
                              numeros = Util.sorteia(1, 60)
                              contador = 0
                         }
                         contador++
                    }
                    megaApostas[i][j] = numeros
               }
          }
          escreva("Numeros Sorteados: ")

// Preenche o vetor de sorteio com numeros sorteados aleatórios e não repetidos

          para (inteiro i = 0; i < dezenas; i++) {
               inteiro numeros = Util.sorteia(1, 60)
               inteiro contador = 0
               enquanto (contador < dezenas) {
                    se (nSorteados[contador] == numeros) {
                         numeros = Util.sorteia(1, 60)
                         contador = 0
                    }
                    contador++
               }
               nSorteados[i] = numeros
               escreva(" ", nSorteados[i])
          }
          escreva("\n")

     }
}

1 answer

0


Good afternoon, follow example of code in c to solve the problem.

Note: The code can be optimized, I did it quickly only to demonstrate.

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <time.h>
#define TOTAL_APOSTADORES 100
#define N_DEZENAS 6
#define MAX 60

int main()
{

    srand(time(NULL));

    int dezenasSorteadas [N_DEZENAS];

    printf("Dezenas sorteadas: \n");

    for (int i = 0; i < N_DEZENAS; i++) {
        dezenasSorteadas[i] = rand() % MAX + 1;

        printf("%d ", dezenasSorteadas[i]);
    }

    printf("\n");

    int apostadores [TOTAL_APOSTADORES][N_DEZENAS];

    for (int i = 0; i < TOTAL_APOSTADORES; i++) {
        for (int j = 0; j < N_DEZENAS; j++) {
            apostadores[i][j] = rand() % MAX + 1;
        }       
    }


    int totalPorTotal[N_DEZENAS+1] = { 0, 0, 0, 0, 0, 0, 0 };



    for (int i = 0; i < TOTAL_APOSTADORES; i++) {
        int totalAcertos = 0;

        for (int j = 0; j < N_DEZENAS; j++) {
            for (int k = 0; k < N_DEZENAS; k++) {
                if (dezenasSorteadas[k] == apostadores[i][j]) {
                    totalAcertos++;
                }
            }

        }

        switch(totalAcertos) {
            case 0: totalPorTotal[0]++; break;
            case 1: totalPorTotal[1]++; break;
            case 2: totalPorTotal[2]++; break;
            case 3: totalPorTotal[3]++; break;
            case 4: totalPorTotal[4]++; break;
            case 5: totalPorTotal[5]++; break;
            case 6: totalPorTotal[6]++; break;
        }
    }

    for (int i = 0; i < N_DEZENAS+1; i++) {
        printf("Total com %d acertos: %d\n", i, totalPorTotal[i]);
    }

    return EXIT_SUCCESS;
}

Exit:

Dezenas sorteadas: 
9 13 28 30 45 10 
Total com 0 acertos: 48
Total com 1 acertos: 39
Total com 2 acertos: 11
Total com 3 acertos: 1
Total com 4 acertos: 1
Total com 5 acertos: 0
Total com 6 acertos: 0
  • Perfect, I was only using 2 for and I wasn’t resetting the value of the variable of hits, I was going straight through! only need to arrange the repetition of the numbers drawn!

  • Ball show! Hug.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.