Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não deixa o numero repetir usando a função rand()...

Alguém pode me ajuda neste meu código para não deixar o números se repetir?

include

include

include

int main() {

int numero;

int c;

int jogo;

srand(time(0));

srand( (unsigned)time(NULL) );

printf( "Qual jogo deseja fazer:\n");

printf("(1)_Mega Sena (2)_Lotofacil (3)_Quina (4)_Lotomania?\n");

scanf("%d", &jogo);

switch(jogo) {

case 1: c = 60; break;

case 2: c = 25; break;

case 3: c = 80; break;

default: c = 100; break; }

printf("Seu jogo vai ser de quantos numero?\n");

scanf("%d", &numero);

printf("\n");

printf("Os numeros sao:\n");

for(int i = 0; i < numero; i++) {

printf("%d\n", rand() % c);

}

}

1 resposta
solução!

Boa noite Marcelo,

Criei um array para armazenar os números sorteados e uma função que verifica se o numero sorteado já está naquele array. Faça uns testes e veja se resolve seu problema.

Nas próximas vezes use o botão "inserir código" para que o seu exemplo fique formatado.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>

//Vertifica se o numero está no array
bool verificaArray(int numero, int *arr, int tamanho){
    int i;
    for (i=0; i < tamanho; i++) {
        if (arr[i] == numero)
            return true;
    }
    return false;
}

int main() {

  int numero;
  int numero_sorteado;
  int c;

  int jogo;

  int numeros[100];

  srand(time(0));

  srand( (unsigned)time(NULL) );

  printf( "Qual jogo deseja fazer:\n");

  printf("(1)_Mega Sena (2)_Lotofacil (3)_Quina (4)_Lotomania?\n");

  scanf("%d", &jogo);

  switch(jogo) {

    case 1: c = 60; break;

    case 2: c = 25; break;

    case 3: c = 80; break;

    default: c = 100; break; 
  }

  printf("Seu jogo vai ser de quantos numero?\n");

  scanf("%d", &numero);

  printf("\n");

  printf("Os numeros sao:\n");

  for(int i = 0; i < numero; i++) {

    numero_sorteado = rand() % c;

    //se retornar false inclui o numero no array, se retornar true decrementa o contador (também exclui o zero)
    if(!verificaArray(numero_sorteado, numeros, i ) && numero_sorteado != 0) {
      numeros[i] = numero_sorteado;
      printf("%d\n",numero_sorteado);
    } else {
      i--;
    }

  }

}

Abraços