• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Triton

[C] Array shuffling

1 mensagem neste tópico

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

int getRand(int range)
{
   return rand() % range;
}

void swap(int arr[], int a, int b)
{
   int tmp = arr[a];
   arr[a] = arr[b];
   arr[b] = tmp;
}



void shuffle(int arr[], int size)
{
   int i;
   for(i = 0; i < size; i++)
   {
       swap(arr, i, getRand(size));
   }
}

void printarr(int arr[], int size)
{
   int i;
   for(i = 0; i < size; i++)
   {
       printf("%d ", arr[i]);
   }
   putchar('\n');
}

int main()
{
   srand(time(0));

   int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};

   printarr(arr, sizeof(arr)/sizeof(arr[0]));
   shuffle(arr, sizeof(arr)/sizeof(arr[0]));
   printarr(arr, sizeof(arr)/sizeof(arr[0]));

   return 0;
}

Output:

1 2 3 4 5 6 7 8 9

9 7 5 6 8 4 2 1 3

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora