Ir ao conteúdo
  • Cadastre-se
albert igo

C nomede duas pessoas do grupo aleatorio

Recommended Posts

Olá pessoal , venho mais uma vez explora do conhecimento de vocês . 

estou com um problema  que nem sei como começar  exercicio que é o seguinte .

Tem que fazer um programa que possa digitar todos os alunos de uma  sala e tem que sortear o grupo de 2 pessoas . 

tipo a sala tem 10 alunos então vai sortear 5 grupos de 2 alunos mas não pode repetir . 

O problema é que , eu vi que tem a função srand , rand , etc. , porém ,eu não sei usa-la não aprendi direito e preciso resolver esse ultimo exercicio para fecha o semestre , se alguem poder me ajudar ! 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem várias apostilas, tutoriais e vídeos na internet explicando como funcionam, segue um deles:

 

https://www.cprogressivo.net/2013/03/Como-gerar-numeros-aleatorios-em-C-com-a-rand-srand-e-seed.html

 

Algumas notas adicionais:

- Só precisa usar srand(time(NULL)) apenas 1 vez no programa para definir a semente inicial do gerador de números aleatórios.

- E uma correção sobre a explicação do site é que ambas as funções srand() e rand() pertencem a biblioteca stdlib.h , e a função time() pertence a biblioteca time.h .

 

 

Fora isso você vai precisar usar o algoritmo Knuth Fisher-Yates para embaralhar os alunos, então seguem tópicos demonstrando o algoritmo em português estruturado e em C:

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@isrnick Obrigado pela ajuda ! 

A minha logica esta certa?

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

int main (){
    char vet[4];
    int cont,j,c;
    for (cont=1;cont<=4;cont++){
        printf("Digite o nome ");
        scanf("%s",&vet[cont]);    
    }
    srand((unsigned) time(NULL));
    for (cont=1;cont<= 4;cont++){
        c=rand()% 4;
        vet[cont]=c;
        if (cont > 0 ){
            for (j = 1 ; j <= 4-1; j++){
                if (vet[cont]=vet[j]){
                    c=rand()%4;
                    vet[cont] =c;
                    j = 0;
                }
            }
        }
        printf("%d\n",vet[cont]);
    }
    printf("\n");
    system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×