33 lines
		
	
	
		
			946 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			946 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| 
 | |
| /* Fonction récursive pour calculer le nombre de chiffres */
 | |
| int nombre_de_chiffres(unsigned int n) {
 | |
|     /* Cas de base : un seul chiffre */
 | |
|     if (n < 10) {
 | |
|         return 1;
 | |
|     }
 | |
|     /* Appel récursif avec la division par 10 */
 | |
|     return 1 + nombre_de_chiffres(n / 10);
 | |
| }
 | |
| 
 | |
| /* Fonction principale pour tester */
 | |
| int main(void) {
 | |
|     /* Cas de test */
 | |
|     unsigned int valeurs[] = {0, 999, 10000};
 | |
|     int resultats_attendus[] = {1, 3, 5};
 | |
|     int i, resultat;
 | |
| 
 | |
|     printf("Test de la fonction nombre_de_chiffres:\n");
 | |
|     for (i = 0; i < 3; i++) {
 | |
|         resultat = nombre_de_chiffres(valeurs[i]);
 | |
|         printf("Nombre de chiffres de %u : %d (Attendu : %d)\n",
 | |
|                valeurs[i], resultat, resultats_attendus[i]);
 | |
|         if (resultat != resultats_attendus[i]) {
 | |
|             printf("Erreur : le résultat est incorrect pour %u\n", valeurs[i]);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     return EXIT_SUCCESS;
 | |
| }
 |