1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
// Peut-être l'encapsuler dans une structure
typedef enum e_INDEX_TYPE {
GLB_TYPE_CHANTIER = 0,
GLB_TYPE_OUVRIER/*,
GLB_NB_TYPES*/
} t_INDEX_TYPE
void tri(void* Index, int size, t_INDEX_TYPE item) {
size_t i, j;
switch (item) {
case GLB_TYPE_CHANTIER :
{
struct indexchantier *iC;
struct indexchantier tmpC;
iC=Index;
for (i = 0; i < size; i++) {
for (j = i; j < size && strcmp((iC + i)->Nom, "-1") != 0 && strcmp((iC + j)->Nom, "-1") != 0; j++) {
if (strcmp((iC + i)->Nom, (iC + j)->Nom) > 0 && strcmp((iC + j)->Nom, "-1") != 0) {
/*intervertir les 2 structures*/
tmpC = iC[i];
iC[i] = iC[j];
iC[j] = tmpC;
}
}
}
}
break;
case GLB_TYPE_OUVRIER:
{
struct indexouvrier *iO;
struct indexouvrier tmpO;
iO=Index;
for (i = 0; i < size; i++) {
for (j = i; j < size && strcmp((iO + i)->Nom, "-1") != 0 && strcmp((iO + j)->Nom, "-1") != 0; j++) {
if (strcmp((iO + i)->Nom, (iO + j)->Nom) > 0 && strcmp((iO + j)->Nom, "-1") != 0) {
/*intervertir les 2 structures*/
tmpO = iO[i];
iO[i] = iO[j];
iO[j] = tmpO;
}
}
}
}
break;
}
} |
Partager