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 52 53 54 55 56 57 58 59 60 61 62 63
| #include <stdio.h>
static void dump(int const * tab, size_t size)
{
for(int const * next = tab; next < tab + size; next++)
printf("%d ", *next);
puts("");
}
static void swap(int * tab, size_t size)
{
for(int * next = tab, *last = tab + size - 1; next < last; next++, last--)
{
int tmp = *next;
*next = *last;
*last = tmp;
}
}
static void fill(int * tab, size_t size)
{
for(int * next = tab; next < tab + size; next++)
{
int ret = 0;
do
{
printf("element %td : ", next - tab); /* substracting pointers give a ptrdiff_t */
fflush(stdout);
ret = scanf("%d", next);
scanf("%*[^\n]"), getchar();
}
while(ret != 1);
}
}
int main(void)
{
size_t size = 0;
int ret = 0;
puts("entrer la taille du tableau (max.50) :");
ret = scanf("%zu", &size);
scanf("%*[^\n]"), getchar(); /* flush stdin */
if(ret == 1 && size <= 50)
{
int tab[size]; /* VLA, checked size */
fill(tab, size);
dump(tab, size);
swap(tab, size);
puts("tableau resultat :");
dump(tab, size);
}
return 0;
} |
Partager