Suppression d'éléments d'un tableau en C

J'ai juste une simple question sur les tableaux en C

Quelle est la meilleure façon de supprimer des éléments d'un tableau et dans le processus de faire de la matrice plus petite.

je.e le tableau est de taille n, alors je prends des éléments de la matrice, puis la matrice diminue par la quantité que je l'ai retiré.

fondamentalement, je suis le traitement de la matrice comme un jeu de cartes et une fois que je prends une carte du dessus du paquet, il ne devrait pas être plus là.

EDIT: je vais vous conduire moi-même fou avant la fin de la journée, merci pour toute l'aide que je suis en train de la valeur de la permutation de chose mais ça ne marche pas droit.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
enum faces{Ace = 0, Jack = 10, Queen, King};
char * facecheck(int d); 
int draw(int deck, int i); 
int main() 
{ 
int deck[52], i, n;
char suits[4][9] = 
{
"Hearts",
"Diamonds",
"Clubs",
"Spades"};
n = 0;
for(i = 0; i<52; i++)
{
deck[i] = n;
n++;
};
for(i=0; i<52; i++)
{       
if(i%13 == 0 || i%13 == 10 || i%13 == 11 || i%13 == 12)
printf("%s ", facecheck(i%13) );
else printf("%d ", i%13+1);
printf("of %s \n", suits[i/13]);
}
draw(deck, i);
return 0; 
}  
char * facecheck(int d)
{
static char * face[] = 
{
"Ace",
"Jack",
"Queen",
"King" };
if(d == Ace)
return face[0];
else
{
if(d == Jack) 
return face[1];
else
{
if(d == Queen)
return face[2];
else 
{ 
if(d == King)
return face[3];
}
}
} 
}
int draw(int deck,int i ) 
{ 
int hand[5], j, temp[j];
for(i=0; i<52; i++)
{
j = i
}; 
for(i = 0; i < 5; i++)
{
deck[i] = hand[]; 
printf("A card has been drawn \n");
deck[i] = temp[j-1];
temp[j] = deck[i];
};
return deck;
}

source d'informationauteur Rini Posny