------- TP19 : Allocation dynamique -------- 1. # include # include int main(void) { int taille_tab; double* tab = (double*) malloc(3*sizeof(double)); int* tab_compteurs = (int*) malloc(sizeof(int)); int i; int j; printf("Combien de réels souhaitez-vous entrer ? "); scanf("%d", &taille_tab); getchar(); tab = (double*) realloc(tab, taille_tab*sizeof(double)); tab_compteurs = (int*) realloc(tab_compteurs, taille_tab*sizeof(int)); for (i = 0; i != taille_tab; i++) { printf("Entrez le %de réel : ", i + 1); scanf("%lf", &tab[i]); getchar(); tab_compteurs[i] = 0; } for (i = 0; i!=taille_tab; i++) { for (j = 0; j != taille_tab; j++) { if (tab[j] == tab[i]) { tab_compteurs[i] += 1; } } } for (i = 0; i!=taille_tab; i++) { if (tab_compteurs[i] == 1) { printf("| %lf ", tab[i]); } } putchar('\n'); return EXIT_SUCCESS; } 2. # include # include # include char* inverse(const char* s) { int taille_s = strlen(s); char* s_inverse = (char*) malloc(sizeof(char)); int i; int j = 0; s_inverse = realloc(s_inverse, taille_s*sizeof(char)); for (i = taille_s-1; i>0; i--) { s_inverse[j] = s[i]; j++; } s_inverse[j] = s[0]; return s_inverse; } int main(int argc, char** argv) { int i; for (i = 1; i != argc; i++){ if (strcmp(argv[i], inverse(argv[i])) == 0) { printf(argv[i]); printf(" est un palindrome.\n"); } else { printf(argv[i]); printf(" n'est pas un palindrome.\n"); } } return EXIT_SUCCESS; } 3.