Guest User

Sorteio Aleatório

a guest
Nov 15th, 2011
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.20 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* Sorteia números aleatórios no intervalo de zero a 40 e coloca os valores no
  5.    vetor apontado por baralho.  */
  6. int sorteia_valores(int baralho[40])
  7. {
  8.     int num;
  9.     int i, pos;
  10.  
  11.     /* Reinicia os valores no vetor baralho  para evitar
  12.        problemas */
  13.     for(i = 0; i < 40; i++) baralho[i] = -1;
  14.  
  15.     srand(time(NULL));
  16.     pos = 0;
  17.     while (1) {
  18.         /* Sorteia um número de 0 a 39. Se esse número já estiver no baralho,
  19.            faz-se um novo sorteio e verifica novamente se ele está no baralho.
  20.            O loop só irá terminar quando for sorteado um número que não esteja
  21.            no baralho */
  22.         num = rand() % 40;
  23.         for(i = 0; baralho[i] != -1; i++) {
  24.             if(baralho[i] == num) {
  25.                 num = rand() % 40;
  26.                 i = -1;
  27.             }
  28.         }
  29.         baralho[pos] = num;
  30.  
  31.         pos++;
  32.         if(pos == 40) break;        
  33.     }
  34.     return 0;
  35. }
  36.  
  37. int main ()
  38. {
  39.     int baralho[40];
  40.     int i;
  41.  
  42.     sorteia_valores(baralho);
  43.  
  44.     printf("Valores sorteados:\n");
  45.     for(i = 0; i < 40; i++)
  46.         printf("%d ", baralho[i]);
  47.     putchar('\n');
  48.  
  49.     return 0;
  50.  
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment