Faça um programa em C para gerar apostas na Mega Sena com N dezenas (informada pelo usuário). Armazene os números gerados aleatórios no intervalo de 1 a 60 em um vetor. Lembre se que os N números precisam ser diferentes entre si, não podendo repetir o número adicionado no vetor.

Passo 1

Beleza, vamos lá! O que a gente precisa fazer aqui é criar um programa em C que gera apostas para a Mega Sena. O usuário vai informar quantos números ele quer (N), e a gente vai gerar N números aleatórios entre 1 e 60. Ah, e tem que garantir que nenhum número se repita na aposta, ok? Para isso, vamos precisar usar vetores para armazenar os números e funções para gerar números aleatórios e verificar se já existe algum número no vetor.

Passo 2

Primeiro, vamos começar incluindo as bibliotecas necessárias. Vamos precisar de stdio.h para entrada e saída, stdlib.h para usar a função rand() que gera números aleatórios, e time.h para inicializar a semente do gerador de números aleatórios com base no tempo atual.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

Passo 3

Dentro da função main, vamos declarar as variáveis que vamos precisar. Vamos ter uma variável N para armazenar a quantidade de números que o usuário quer, um vetor numeros[60] para guardar os números da aposta, e algumas variáveis auxiliares como i, j e um booleano repetido para verificar se um número já foi sorteado.
int main() {
    int N;
    int numeros[60];
    int i = 0, j;
    int num;
    int repetido;

Passo 4

Agora, vamos solicitar ao usuário que informe quantos números ele quer na aposta. Também vamos fazer uma verificação para garantir que o número informado seja entre 1 e 60.
    printf("Quantas dezenas você quer apostar (1 a 60)? ");
    scanf("%d", &N);

    if(N < 1 || N > 60) {
        printf("Número de dezenas inválido!\n");
        return 1;
    }

Passo 5

Vamos inicializar o gerador de números aleatórios usando a função srand() com base no tempo atual. Isso garante que a sequência de números aleatórios seja diferente a cada execução do programa.
    srand(time(NULL));

Passo 6

Agora, vamos gerar os números aleatórios. Vamos usar um loop que continua até termos N números únicos no vetor. Dentro do loop, vamos gerar um número aleatório entre 1 e 60 e verificar se ele já existe no vetor. Se não existir, adicionamos ao vetor; se existir, geramos outro número.
    while(i < N) {
        num = rand() % 60 + 1; // Gera número entre 1 e 60
        repetido = 0;

        // Verifica se o número já foi sorteado
        for(j = 0; j < i; j++) {
            if(numeros[j] == num) {
                repetido = 1;
                break;
            }
        }

        // Se não for repetido, adiciona ao vetor
        if(!repetido) {
            numeros[i] = num;
            i++;
        }
    }

Passo 7

Por fim, vamos exibir os números gerados na tela, mostrando a aposta completa para o usuário.
    printf("Sua aposta na Mega Sena é: ");
    for(i = 0; i < N; i++) {
        printf("%d ", numeros[i]);
    }
    printf("\n");

    return 0;
}

Resposta

Aqui está o programa completo que gera apostas na Mega Sena com N dezenas sem repetir números:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int N;
    int numeros[60];
    int i = 0, j;
    int num;
    int repetido;

    printf("Quantas dezenas você quer apostar (1 a 60)? ");
    scanf("%d", &N);

    if(N < 1 || N > 60) {
        printf("Número de dezenas inválido!\n");
        return 1;
    }

    srand(time(NULL));

    while(i < N) {
        num = rand() % 60 + 1; // Gera número entre 1 e 60
        repetido = 0;

        // Verifica se o número já foi sorteado
        for(j = 0; j < i; j++) {
            if(numeros[j] == num) {
                repetido = 1;
                break;
            }
        }

        // Se não for repetido, adiciona ao vetor
        if(!repetido) {
            numeros[i] = num;
            i++;
        }
    }

    printf("Sua aposta na Mega Sena é: ");
    for(i = 0; i < N; i++) {
        printf("%d ", numeros[i]);
    }
    printf("\n");

    return 0;
}
Esse programa vai pedir para você informar quantas dezenas quer apostar, gerará números aleatórios entre 1 e 60 sem repetir, e mostrará sua aposta na tela. Show de bola!

Exercícios relacionados

Faça um código para gerar 25 números aleatórios (entre 10 e 40 ) e armazenar em um vetor. Apresente os números gerados na tela e depois organize o vetor com o método de ordenação InsertionSort. Ao final, apresente o vetor ordenado.
Um amigo lhe diz que é capaz de ordenar qualquer conjunto de 6 números com no máximo 8 comparações. O seu amigo está falando a verdade ou mentindo? Justifique.
Faça um programa em C que leia 10 valores inteiros, armazeno-os em um vetor, calcule e apresente a soma destes valores.
Escreva um programa para converter uma cadeia de caracteres de letras maiusculas em letras minusculas. Dica: some 32 nos caracteres cujo codigo ASCII está entre 65 e 90 .