38 lines
		
	
	
		
			864 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			864 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| 
 | |
| /* 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;
 | |
| }
 |