Ir ao conteúdo

Posts recomendados

Postado

Estou com um problema  no meu simulador da megasena, quando coloco pra gerar numeros aleatorios eles vem repetidos, preciso de ajuda para saber onde estou errando.

 

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



int ordenacao(int *numero, int quantidade);
int sorteio( int quantidade);


int main(){

    srand( time(0));

    int numero[16],aposta[16],acertos[16];
    int escolha,quantidade,aux;
    int i,j;



        printf("opcao 1  Escolher numeros\nopcao 2  Modo aleatorio\n\n\n");
        printf("opcao:");
        scanf("%d",&escolha);
        printf("\n");

       

     if (escolha == 1 || escolha == 2 ){

         printf("Quantos numeros deseja escolher para a aposta\n");
         printf("        as opções sao de 6 a 15:\n             ");
         scanf("%d",&quantidade);
       

    if(quantidade <=15 && quantidade>=6 ){
            switch(escolha){
                case 1 :
                     for(i=1; i<=quantidade; i++){
                          printf("Digite o %d numero:\n",i);
                         scanf("%d",&aposta);
                    }

                    printf("\n");
                    printf("Numeros escolhido:");

                   

                    for(i=1; i<=quantidade;i++){

                        printf("[%d]  ",aposta);

                   }


                break;

                case 2 :

                    printf("Numeros aleatorios:");
                    sorteio(quantidade);

                break;
                }

                printf("\n\n");
               

               printf("Numeros Sorteados:");
                sorteio(quantidade);

                printf("\n");

                }
        else{
            printf("!!essa opcao nao existe!!");
        }
    }
    else{
        printf("!!Essa opcao nao existe!!\n");
    }

return(0);}

 

int sorteio(int quantidade){
    int i,j;
    int numero[16];

    for(i=1;i<=quantidade;i++){
        numero=rand()%61;
    for(j=1;j<=quantidade;j++){
            if(numero==numero[j]||numero==0){
               numero=rand()%61;
            }
        }
    }


     for(i=1; i<=quantidade; i++){
        ordenacao(numero,quantidade);
    }


    for(i=1; i<=quantidade; i++){

        printf("[%d]  ",numero);

    }


}

 

 

int ordenacao(int *numero,int quantidade){


    int i,j,aux;
    for (i=1;i<quantidade; i++){
        for(j=i;j<quantidade;j++){
            if (numero>numero[j+1]){
                aux=numero;
                numero=numero[j+1];
                numero[j+1]=aux;

            }
        }
    }


return numero[16];}

 

  • Curtir 1
Postado

@Gabrielcampos20    sua função de sorteio está com um erro na hora de verificar se o número escolhido já existe no vetor  ele apenas escolhe outro uma vez e já passa adiante ,  mas isso não garante que ele tenha escolhido um número que não exista no vetor ,  seria necessário  que ele repetisse a verificação novamente , e na linguagem c os vetores começam na posição zero do vetor e vai até o total -1 ,  então essa função seria assim  :

int sorteio(int quantidade){
    int i,j,flag;
    int numero[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    for(i=0;i<quantidade;i++){
        do{
            flag=0;
            numer=rand()%60+1;
            for(j=0;j<quantidade;j++){
                if(numer==numero[j] ){
                   flag=1;
                   break;
                }
            }
        }while(flag==1);
        numero[i]=numer;
    }
    /*for(i=0; i<quantidade; i++){*/
    ordenacao(numero,quantidade);
    /*}*/
    for(i=0; i<quantidade; i++){
        printf("[%d]  ",numero[i]);
    }
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...