Escreva um programa que leia primeiro os 6 números gerados pela loteria e depois os 6 números do seu bilhete. O programa então compara quantos números o jogador acertou. Em seguida, ele aloca espaço para um vetor de tamanho igual a quantidade de números corretos e guarda os números corretos nesse vetor. Finalmente, o programa exibe os números sorteados e os seus números corretos.
Passo 1
Vambora!
A questão quer que a gente receba dois arrays do usuário, e depois aloque um array dinâmico que contenha a os números que pertencem às duas arrays originais. Então a gente vai precisar realizar loops para preencher as arrays, e um loop que vai procurar os números iguais nas duas arrays.
Então vamos começar declarando as variáveis necessárias. Primeiro uma array de inteiros chamada que vai conter os seis números da loteria. Depois uma outra array de inteiros chamada que vai conter os seis números que o usuário escolheu.
Para criar uma array dinâmica, a gente precisa saber quantos números o usuário acertou, então vamos criar uma variável inteira chamada que vamos usar pra contar a quantidade de acertos do usuário. O endereço de memória do array dinâmico precisa ser armazenado em um ponteiro, que vamos chamar de . E, por último, vamos precisar de duas variáveis e que vamos usar para criar os loops!
Passo 2
Primeiro de tudo, vamos perguntar pro usuário quais foram os números sorteados na loteria. Ou seja, vamos pedir pra ele preencher a array .
Pra isso vamos criar um loop de seis voltas, que a cada iteração vai pedir pro usuário inserir um número, e armazenar o valor digitado na posição correspondente da array.
E em seguida, vamos fazer o mesmo processo para preencher o array que contém os números que o usuário escolheu:
Passo 3
Certo, agora vamos pra uma parte mais complicadinha da questão. Vamos precisar contabilizar a quantidade de acertos do usuário. Pra isso vai ser necessário um loop aninhado e uma estrutura condicional.
O primeiro loop vai percorrer os seis valores da array , dentro desse loop vamos criar um segundo loop que percorre os seis valores da array .
Dentro do loop vamos estabelecer uma condição de que se o número apostado atual, for igual ao número sorteado atual, então a gente aumenta o valor da variável .
Uma coisa interessante de se lembrar é que numa loteria não é possível que o mesmo número seja sorteado ou apostado duas vezes! Então podemos usar o comando para interromper o loop de números sorteados, e partir para o próximo número apostado!
Passo 4
Prontinho! Agora que já temos a quantidade de acertos, podemos criar o nosso array dinâmico com o tamanho adequado!
Vamos usar o operador para iniciar um array de inteiros com o tamanho da variável
Pronto! Agora vamos poder utilizar o ponteiro para acessar os endereços do array alocado dinamicamente!
Passo 5
Agora precisamos preencher o array dinâmico com os números acertados pelo usuário.
Pra isso vamos usar novamente a mesma estrutura de loops aninhados com estrutura condicional.
O primeiro loop vai percorrer os seis valores da array , dentro desse loop vamos criar um segundo loop que percorre os seis valores da array .
Só que dessa vez, se o número apostado atual, for igual ao número sorteado atual, então a gente vai armazenar esse valor na posição do array dinâmico !
Passo 6
Agora só precisamos imprimir os números contidos no array dinâmico!
Pra isso é só a gente criar um loop que vai iniciar em zero e avançar até o número de um em um. E a cada iteração vai exibir o conteúdo da posição do array dinâmico.
Passo 7
Estamos quase acabando. Mas antes de finalizar a questão, temos que lembrar que sempre que usamos alocação dinâmica, temos que liberar a memória!
Então vamos utilizar o operador para apagar o array alocado dinamicamente
E finalizamos a questão!