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
|
#include <stdio.h>
#include <string.h>
int inserer (int t[], size_t n, size_t last, int elt, size_t pos)
{
/* 1. vérifier les limites */
if (last < n)
{
if (pos <= last)
{
/* 2. trouver l'emplacement de l'insertion */
/* 3. déplacer la fin de 1 case avec memmove() */
memmove (t + pos + 1, t + pos, (last - 1) * sizeof *t);
/* 4. copier l'élément dans le 'trou'. */
t[pos] = elt;
last++;
}
}
return last;
}
void afficher (int const t[], size_t n)
{
size_t j;
for (j = 0; j < n; j++)
{
printf ("%4d", t[j]);
}
printf("\n");
}
int main (void)
{
int t[10] = { 1, 2, 3, 4 };
size_t l = 4;
#define n (sizeof t/sizeof *t)
afficher (t, n);
l = inserer (t, n, l, 8, 4);
afficher (t, n);
l = inserer (t, n, l, -3, 2);
afficher (t, n);
return 0;
} |
Partager