Aleatoriedade em C

Como tornar seus programas mais flexíveis e com sistemas aleatórios bem úteis em qualquer lugar.

[ Hits: 35.790 ]

Por: Lord Arthas Menethil em 21/06/2006


Colocando em prática 2



Essa é a segunda parte do code:

int generate(int type)
{
        FILE *arq;
        char pass[137];
        char passs[137];
        char passss[137];
        int quant;
        int qtn;
        int n = 0;

srand(time(NULL));
        arq = fopen("senha.txt", "a+");

        if(type == 1)
        {
                printf("Digite a quantidade de caracteres que desenha. ");
                scanf("%d", &quant);

                for(n = 0; n <= quant; n++)
                {
                        sprintf(&pass[n], "%c", key_lchar[rand()%53]);
                        printf("%c", pass[n]);
                        fprintf(arq, "%c", pass[n]);
                        sleep(1);
                }

                printf(" ");
        }

        if(type == 2)
        {
                printf("Digite a quantidade de caracteres que desenha. ");
                scanf("%d", &quant);

                for(n = 0; n <= quant; n++)
                {
                        sprintf(&pass[n], "%d", key_num[rand()%11]);
                        printf("%c", pass[n]);
                        fprintf(arq, "%c", pass[n]);
                        sleep(1);
                }

                printf(" ");
        }

        if(type == 3)
        {
                printf("Digite a quantidade de caracteres que desenha. ");
                scanf("%d", &quant);
                qtn = quant / 2;

                for(n = 0; n <= qtn; n++)
                {
                        sprintf(&pass[n], "%c", key_lchar[rand()%53]);
                        sprintf(&passs[n], "%d", key_num[rand()%11]);
                        printf("%c%c", pass[n], passs[n]);
                        fprintf(arq, "%c%c", pass[n], passs[n]);
                        sleep(1);
                }

                printf(" ");
        }

        if(type == 4)
        {
                printf("Digite a quantidade de caracteres que desenha. ");
                scanf("%d", &quant);
                qtn = quant / 2;

                for(n = 0; n <=qtn; n++)
                {
                        sprintf(&pass[n], "%c", key_lchar[rand()%53]);
                        printf("%c", pass[n]);
                        fprintf(arq, "%c", pass[n]);

                        if(n % 2 == 0)
                        {
                                if((rand()%11) % 2 == 0)
                                {
                                        sprintf(&passs[n], "%c", key_espec[rand()%18]);
                                        printf("%c", passs[n]);
                                        fprintf(arq, "%c", passs[n]);
                                }

                                else
                                {
                                        sprintf(&passss[n], "%d", key_num[rand()%11]);
                                        printf("%c", passss[n]);
                                        fprintf(arq, "%c", passss[n]);
                                }
                        }

                        else
                        {
                                sprintf(&passs[n], "%d", key_num[rand()%11]);
                                printf("%c", passss[n]);
                                fprintf(arq, "%c", passss[n]);
                        }

                        sleep(1);
                }

                printf(" ");
        }

        fclose(arq);
        return(0);
}

void about(void)
{
        printf("Key Generator 0.9 ");
        printf("Autor: Morte137 ");
        printf("Contato: [email protected] ");
        printf("Agradecimentos: GNU por seus ótimos manuais, além dos mesmos agradecimentos de sempre. ");
        printf("O que haverá no 1.0: Interface Grafica ");
}
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Colocando em prática 1
   3. Colocando em prática 2
   4. Finalização
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Túnel do Tempo: a função itoa()

Tutorial OpenGL

Ponteiros void na linguagem C

Como aprender a programar e produzir aplicativos usando Euphoria

Reprodução de arquivos WAV com SDL_mixer e linguagem C

  
Comentários
[1] Comentário enviado por pacman em 21/06/2006 - 22:40h

Lembrando que rand() gera um numero aleatório positivo entre 0 e RANDMAX, definida na stdlib.h

se vc quiser gerar numeros aleatórios entre 0 e X vc pode fazer :

X * rand()/(RANDMAX+1.0);

e entre X e Y

X + ((Y - X) * rand()/(RANDMAX+1.0));

usar o %10 para limitar um gerador de numeros aleatórios vicia um pouco o resultado.

[2] Comentário enviado por tralsl em 17/02/2007 - 22:22h

alguem sabe dizer se
random("numero max-1");
funciona?

[3] Comentário enviado por rockstore6 em 23/07/2007 - 08:11h

muito bom o assunto..... cara esse site é foda :)

[4] Comentário enviado por Gilfran em 26/09/2007 - 16:42h

Parabéns por explorar essa funcionalidade, muitas vezes passamos sufoco pensando em uma forma de elaborar algo do tipo e temos a função já pronta às nossas mãos.
Abraços,
"Gil"
www.tux-ce.org

[5] Comentário enviado por mva em 12/12/2008 - 03:35h

Fala galera, blz??

É o seguinte... Depois de um semestre suado, estou aproveitando as ferias e tentando fazer um joguinho em C do tipo come-come...

O problema esta em fazer com que as comidas sejam colocadas de forma aleatoria dentro da tela...

Tentei usar as funcoes rand e srand, porem quando o faco, aparece um erro dizendo que algumas funcoes (que antes estavam funcionando perfeitamente) nao estao referenciadas...

Quero deixar claro que o compilador nao acusou erro em relacao as funcoes rand e srand, mas sim em outras funcoes construidas por mim e que antes estavam funcionando perfeitamente...

Todos os cabecalhos nos quais as funcoes estao definidas e codificadas foram incluidos... Nao faco ideia do porquê desse erro...

Alguem pode me ajudar??

Vlw!!!!!!!!!!!!!!!!!!

[6] Comentário enviado por jemessonlima em 25/03/2010 - 15:20h

caramba aleatoriedade , gostaria bastante da ajuda de vocês, daqui do vivaolinux, ok.

Trata-se do algoritmo Random Permutation of n letters (RANPER) ele se trata de uma determinada quantidade chamada de N, gerar termos aleatórios usando a técnica do gray code. o algoritmo encontra-se em FORTRAN No livro Combinatorial Algorithms do Wilf. Gostaria da ajuda de vocês.

[7] Comentário enviado por jemessonlima em 25/03/2010 - 15:21h

o código pode ser em java ou c , blz.

[8] Comentário enviado por jemessonlima em 25/03/2010 - 15:26h

aconselho o uso do mallocX.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts