#include #include /* Fonction récursive pour trouver le maximum */ int trouver_maximum(int n, int valeurs[]) { if (n == 1) { return valeurs[0]; } int max_suivant = trouver_maximum(n - 1, valeurs + 1); return (valeurs[0] > max_suivant) ? valeurs[0] : max_suivant; } int main(int argc, char *argv[]) { int i, n; int *valeurs; if (argc < 2) { fprintf(stderr, "Usage: %s nombre1 nombre2 ...\n", argv[0]); return EXIT_FAILURE; } n = argc - 1; valeurs = (int*)malloc(n * sizeof(int)); if (valeurs == NULL) { fprintf(stderr, "Erreur d'allocation mémoire\n"); return EXIT_FAILURE; } for (i = 0; i < n; i++) { valeurs[i] = atoi(argv[i + 1]); } printf("%d\n", trouver_maximum(n, valeurs)); free(valeurs); return EXIT_SUCCESS; }