concat_tab.c
00001 #include <stdio.h>
00002 #include <stdlib.h>
00003 #include <time.h>
00004
00005 void print_tab(int tab[], size_t n) {
00006 size_t i;
00007 if (n <= 0) return;
00008 for (i=0; i<n; i++) printf("+----");
00009 printf("+\n");
00010 for (i=0; i<n; i++) printf("| %2d ", tab[i]);
00011 printf("|\n");
00012 for (i=0; i<n; i++) printf("+----");
00013 printf("+\n");
00014 }
00015
00016 void randtab(int tab[], int n, int lim);
00017
00018 int main()
00019 {
00020 size_t n1=0, n2=0, i;
00021 printf("Entrer la taille du premier tableau: n1 = "); scanf("%lu",&n1);
00022 printf("Entrer la taille du second tableau: n2 = "); scanf("%lu",&n2);
00023 int *tab1, *tab2;
00024 tab1 = (int *) malloc(n1 * sizeof(int));
00025 tab2 = (int *) malloc(n2 * sizeof(int));
00026 if ((tab1 == NULL) || (tab2 == NULL)) {
00027 fprintf(stderr, "Erreur lors de l'allocation des tableaux\n");
00028 return 1;
00029 }
00030 srand(time(NULL));
00031 randtab(tab1,n1,99);
00032 randtab(tab2,n2,99);
00033 printf("Affichage du tableau tab1 de taille n1 = %lu:\n",n1);
00034 print_tab(tab1,n1);
00035 printf("Affichage du tableau tab2 de taille n2 = %lu:\n",n2);
00036 print_tab(tab2,n2);
00037 if ( (tab1 = (int *) realloc((void *) tab1, n1 + n2)) == NULL) {
00038 fprintf(stderr, "Erreur lors de la réallocation du premier tableau\n");
00039 return 1;
00040 }
00041 for (i=n1; i<n1+n2; i++) tab1[i] = tab2[i-n1];
00042 printf("Affichage du tableau tab1 de taille n1+n2 = %lu:\n",n1+n2);
00043 print_tab(tab1,n1+n2);
00044 free(tab1);
00045 free(tab2);
00046 return 0;
00047 }
00048
00049
00050
00051 void randtab(int tab[], int n, int lim) {
00052 int i;
00053 for (i=0; i<n; i++)
00054 tab[i] = (int) (((double) lim+1) * rand() / (RAND_MAX+1.0));
00055 }