fork download
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <stdlib.h>
  4.  
  5. void shuffle(int *array, int tamanho) { //sorteia grantidamente único - algoritmo Fisher-Yates
  6. for (int i = tamanho - 1; i > 0; i--) {
  7. int j = rand() % (i + 1);
  8. int tmp = array[j];
  9. array[j] = array[i];
  10. array[i] = tmp;
  11. }
  12. }
  13.  
  14. int main() {
  15. srand(time(NULL));
  16. int roll[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; //cria os valore permitidos
  17. shuffle(roll, 8); //embaralha
  18. int resultado[6];
  19. for (int i = 0; i < 3; i++) { //só escolhe 3 números conforme a definição
  20. resultado[i] = roll[i];
  21. resultado[i + 3] = roll[i]; //repete o número
  22. }
  23. shuffle(resultado, 6); //embaralha os números que estavam agrupados
  24. for (int i = 0; i < 6; i++) printf("%d ", resultado[i]);
  25. }
  26.  
  27. //https://pt.stackoverflow.com/q/315483/101
Success #stdin #stdout 0s 4532KB
stdin
Standard input is empty
stdout
4 1 7 7 4 1