TransWikia.com

Como gerar 10 vezes números aleatórios sem ser repetidos, com loop?

Stack Overflow em Português Asked by Thaina Lopes on November 10, 2021

#include<stdio.h>
#include<stdlib.h> 
#include<locale.h>
#include<conio.h>
#include<time.h>
#include<windows.h> 

int main(){

    int nSorteado[6];
    int i, j, n1, n2, op, seq[6];
    int Ncorretos=0, pontos=0, seg;
    
    srand(time(NULL));
    
    setlocale(LC_ALL, "Portuguese");
    system("color F4");
    
    for(i=0; i < 10; i++)
    {
        printf("############### JOGO DA MEMÓRIA #################");
        printf("n*n* Escolha um intervalo de números: ");
        scanf("%d %d", &n1, &n2);   
        printf("*n");
        printf("* Embaralhando os números de %d a %d...n*", n1, n2);
        
            for(i=0; i < 6; i++)
            {
                nSorteado[i] = n1 + rand() % (n2-n1+1);
            }
        
            printf("n* Voce tem 5 segundos para decorar os 6 números.nn");
            for(i=0; i < 6; i++)
            {
                printf("%d ", nSorteado[i]);
            }
            seg=5;
            do
            {
                printf("nn%ds",seg);
                
                if(seg==20)
                {
                    seg=0;
                }
                Sleep(1000);
                seg--;         
            }while(seg>0);
            
            system("cls");
            
            printf("nQual foi a sequencia dos 5 números sorteados?n");
            printf("n*Obs:. Digite os números com espaço entre eles. Ex: 1 2 3 4 5 6.nn");
            
            for(i=0; i < 6; i++)
            {
                scanf("%d", &seq[i]);
                if(seq[i] == nSorteado[i])
                {
                    Ncorretos++;
                }
            }
            
            if(Ncorretos == 6)
            {
                printf("Parabéns!! Você acertou!");
            }
            else
            {
                printf("Errado! Tente novamente...");
            }
            Sleep(1000);
            system("cls");
        }   
    return 0;
}

Obs: Toda vez que o código é executado, ele gera 6 números aleatórios. Na primeira vez que o código é executado e o usuário digita a sequencia correta dos números, ele recebe uma mensagem de "Parabéns", mas nas outras vezes que o usuário digita a sequencia correta, ele recebe uma mensagem de erro. Já tentei de varias formas arrumar mas não deu certo do jogo funcionar normalmente. Se alguém puder me ajudar eu agradeço muito.

One Answer

Você pode tentar guardar os números aletórios em uma array e sempre que você gerar, utilize um for para verificar se o número aleatorio já foi sorteado.

Answered by Douglas S on November 10, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP