Exercices Corrigés En C – Boucle while
La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec le langage C et programmation. Nous espérons que ces exercices vous aideront à améliorer vos compétences sur le langage C et programmation. Les exercices corrigés suivantes sont actuellement disponibles, nous travaillons dur pour ajouter plus d’exercices. Bon apprentissage!
Vous pouvez lire notre tutoriel sur le langage C avant de résoudre les exercices suivants.
1. Écrire un programme en C qui affiche 10 fois « Hello ». En utilisant la boucle « while ».
Exemple de sortie:
Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello
#include <stdio.h> int main() { int i=1; while(i <= 10 ) { printf("Hello\n"); i++; } return 0; }
2. Ecrivez un programme en C qui calcule la somme de 1 à 10. En utilisant la boucle "while".
Indication:
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
Exemple de sortie:
La somme de 1 à 10 est 55
#include <stdio.h> int main() { int i=1, sum=0; while(i <= 10){ sum = sum + i; i++; } printf("La somme de 1 à 10 est: %d\n", sum); return 0; }
3. Ecrivez un programme en C qui calcule la somme de 1 à N, où N est saisi par l'utilisateur. En utilisant la boucle "while".
Indication:
1 + 2 + 3 + 4 + 5 + 6 + 7 = 28
Exemple de sortie:
Entrer un nombre: 7 La somme de 1 à 7 est 28
#include <stdio.h> int main() { int i=1,sum=0,n; printf("Entrer un nombre:"); scanf ("%d",&n); while (i <= n) { sum = sum + i; i++; } printf("la somme de 1 à %d est: %d\n",n,sum); return 0; }
4. Écrire un programme en C permettant de calculer le plus grand commun diviseur (PGCD) entre deux nombres entiers entrés par l'utilisateur. En utilisant la boucle "while".
Exemple:
n1=18 et n2=45 PGCD(18, 45) = 9
Exemple de sortie:
Entrer deux nombres: 18 45 Le PGCD est : 9
#include <stdio.h> int main() { int n1,n2,pgcd,i=1; printf("Entrer un nombre:"); scanf("%d",&n1); printf("Entrer un nombre:"); scanf("%d",&n2); while(i<=n1 && i<=n2){ if(n1%i==0 && n2%i==0){ pgcd = i; } i++; } printf("Le PGCD de %d et %d est:) = %d",n1,n2,pgcd); return 0; }
5. Ecrire un programme en C qui compte le nombre de chiffres dans un nombre saisi par l'utilisateur.
Exemple de sortie:
Donner un nombre: 9876 Le nombre de chiffres est 4
#include <stdio.h> int main() { int n,i=1; printf("Donner un nombre:"); scanf("%d",&n); while(n/10 != 0){ n = n/10; i = i+1; } printf("Le nombre de chiffres est %d",i); return 0; }
6. Ecrivez un programme en C pour inverser les chiffres d'un nombre saisi par l'utilisateur.
Exemple de sortie:
Donner un nombre: 123 321
#include <stdio.h> int main() { int Nbr,rev=0; printf("Donner un nombre:"); scanf("%d",&Nbr); while(Nbr > 0){ rev = rev * 10; rev = rev + Nbr%10; Nbr = Nbr/10; } printf("%d",rev); return 0; }
7. Écrire un programme C pour afficher les nombres de 0 à 10 et de 10 à 0 en utilisant deux boucles "while".
Exemple de sortie:
Nombres de 0 à 10: 0 1 2 3 4 5 6 7 8 9 10 Nombres de 10 à 0: 10 9 8 7 6 5 4 3 2 1 0
#include <stdio.h> int main() { int i = 0; // Première boucle while: Affiche les nombres de 0 à 10 printf("Nombres de 0 à 10:"); while (i <= 10) { printf("%d ", i); i++; } i = 10; // Remettre le compteur de la boucle à 10 // Deuxième boucle while: Affiche les nombres de 10 à 0 printf("Nombres de 10 à 0:"); while (i >= 0) { printf("%d ", i); i--; } return 0; }
8. Écrivez un programme C qui invite l'utilisateur à saisir une série d'entiers jusqu'à ce que l'utilisateur arrête d'entrer 0 en utilisant une boucle while. Calculez et affichez la somme de tous les entiers positifs entrés.
Exemple de sortie:
Entrez des nombres entiers (entrez 0 pour arrêter): Entrer un nombre : 6 Entrer un nombre : 2 Entrer un nombre : 1 Entrer un nombre : -6 Entrer un nombre : -7 Entrer un nombre : 0 Entrée d'un nombre : -30 Entrée d'un nombre : 3 Somme de nombres positifs: 12
#include <stdio.h> int main() { int n; int s = 0; printf("Entrez des nombres entiers (entrez 0 pour arrêter):\n"); while (1) { printf("Entrer un nombre:"); scanf("%d", &n); if (n == 0) { break; //Quitter la boucle si l'utilisateur entre 0 } if (n > 0) { s += n; //Ajouter les nombres positifs à la somme } } printf("Somme de nombres positifs: %d", s); return 0; }
9. Écrivez un programme C qui calcule le produit des nombres de 1 à 5 à l'aide d'une boucle while.
Exemple de sortie:
Nombre actuel: 1, Produit actuel: 1 Nombre actuel: 2, Produit actuel: 2 Nombre actuel: 3, Produit actuel: 6 Nombre actuel: 4, Produit actuel: 24 Nombre actuel: 5, Produit actuel: 120
#include <stdio.h> int main() { int n = 1; int p = 1; // Démarrer une boucle while pour itérer de 1 à 5 while (n <= 5) { //Mettre à jour le produit en le multipliant par le nbr actuel p *= n; printf("Nombre actuel: %d, Produit actuel: %d\n", n, p); n++; } return 0; }
10. Ecrivez un programme C qui invite l'utilisateur à saisir une série de chiffres jusqu'à ce qu'il saisisse un chiffre dupliqué. Utilisez une boucle while pour vérifier les duplications.
Exemple de sortie:
Entrez des nombres (Entrez un doublon si vous voulez arrêter): Saisir un nombre: 5 Saisir un nombre: 9 Saisir un nombre: 2 Saisir un nombre: 7 Saisir un nombre: 3 Saisir un nombre: 2 Un doublon a été saisi. Le programme s'arrête.
#include <stdio.h> int main() { int nbr; int oldNbr[100]; int doublon = 0; int compteur = 0; printf("Entrez des nombres (Entrez un doublon si vous voulez arrêter):"); while(!doublon){ printf("Saisir un nombre:"); scanf("%d", &nbr); // Vérifier si le nombre actuel est égal à l'un des nombres précédents for(int i = 0; i < compteur; i++){ if(nbr == oldNbr[i]){ // Définir le drapeau indiquant qu'un doublon a été trouvé doublon = 1; printf("Un doublon a été saisi. Le programme s'arrête."); break; //Sortir de la boucle si un doublon est trouvé } } // Stocker le nombre actuel dans le tableau oldNbr[compteur++] = nbr; } return 0; }
11. Écrivez un programme C qui génère un nombre aléatoire entre 1 et 20 et demande à l'utilisateur de le deviner. Utilisez une boucle while pour donner à l'utilisateur plusieurs chances jusqu'à ce qu'il devine le bon nombre.
Exemple de sortie:
Devinez un nombre entre 1 et 20: Saisissez votre nombre: 5 Réponse incorrecte. Réessayez! Saisissez votre nombre: 9 Réponse incorrecte. Réessayez! Saisissez votre nombre: 2 Réponse incorrecte. Réessayez! Saisissez votre nombre: 7 Réponse incorrecte. Réessayez! Saisissez votre nombre: 3 Félicitations! Vous avez deviné le bon nombre en 5 tentatives.
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); // Générer un nombre aléatoire entre 1 et 20 int randNbr = rand() % 20 + 1; int nbr; //Variable pour stocker la supposition de l'utilisateur int tentatives = 0; //Variable pour compter le nombre de tentatives printf("Devinez un nombre entre 1 et 20:"); // Démarrer une boucle while pour donner plusieurs chances à l'utilisateur while(1){ printf("Saisissez votre nombre:"); scanf("%d", &nbr); tentatives++; //Incrémenter le nombre de tentatives // Vérifier si l'hypothèse est correcte if (nbr == randNbr) { printf("Félicitations! Vous avez deviné le bon nombre en %d tentatives.", tentatives); break; // Sortir de la boucle si l'hypothèse est correcte } else { printf("Réponse incorrecte. Réessayez!"); } } return 0; }
12. Ecrivez un programme C qui demande à l'utilisateur de saisir un nom d'utilisateur. Utilisez une boucle while pour continuer à demander un nom d'utilisateur jusqu'à ce qu'un nom valide soit saisi (par ex, au moins 8 caractères).
Exemple de sortie:
Entrez un nom d'utilisateur (au moins 8 caractères): alex00 Erreur: Le nom d'utilisateur doit comporter au moins 8 caractères. Entrez un nom d'utilisateur (au moins 8 caractères): alex_babtise Nom d'utilisateur valide.
#include <stdio.h> int main() { char username[20]; /* Démarrer une boucle while pour continuer à demander le nom d'utilisateur valide */ while (1) { printf("Entrez un nom d'utilisateur (au moins 8 caractères):"); scanf("%s", username); // Vérifier si le nom d'utilisateur a au moins 8 caractères if (strlen(username) >= 8) { break; //Sortir de la boucle si le nom d'utilisateur est valide } else { printf("Erreur: Le nom d'utilisateur doit comporter au moins 8 caractères."); } } printf("Nom d'utilisateur valide."); return 0; }
13. Écrire un programme C qui calcule et affiche la somme des cubes des nombres pairs jusqu'à une limite spécifiée (par exemple, 10) à l'aide d'une boucle while.
Exemple de sortie:
Somme des cubes des nombres pairs jusqu'à 10: 1800
#include <stdio.h> int main() { int max = 10; // Spécifier la limite des nombres pairs int n = 2; // Commencer par le premier nombre pair int s = 0; // Variable pour stocker la somme des cubes /* Démarrer une boucle while pour itérer sur les nombres pairs jusqu'à la limite */ while (n <= max) { // Calculer le cube du nombre pair actuel int cube = n * n * n; // Ajouter le cube à la somme s += cube; // Passer au nombre pair suivant n += 2; } printf("Somme des cubes des nombres pairs jusqu'à %d: %d", max, s); return 0; }
14. Écrire un programme C qui permet de vérifier si un nombre donné est un palindrome à l'aide d'une boucle while.
Exemple de sortie:
Entrez un nombre: 12345 12345 n'est pas un palindrome. ------------------------------- Entrez un nombre: 2222 2222 est un palindrome.
#include <stdio.h> int main() { int n, reversedNbr=0, originalNbr; printf("Entrez un nombre:"); scanf("%d", &n); originalNbr = n; // Démarrer une boucle while pour inverser les chiffres du nombre while (n != 0) { int r = n % 10; // Extraire le dernier chiffre reversedNbr = reversedNbr * 10 + r; // Créer le nombre inversé n /= 10; // Supprimer le dernier chiffre du nombre original } // Vérifier si le nombre inversé est égal au nombre original if (originalNbr == reversedNbr) { printf("%d est un palindrome.", originalNbr); } else { printf("%d n'est pas un palindrome.", originalNbr); } return 0; }
15. Ecrivez un programme C pour trouver et afficher les 10 premiers nombres de Fibonacci à l'aide d'une boucle while.
Exemple de sortie:
Les 10 premiers nombres de Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
#include <stdio.h> int main() { int n = 10; // Initialiser les deux premiers éléments de la série int e1 = 0, e2 = 1; printf("Les %d premiers nombres de Fibonacci:", n); // Démarrer une boucle while pour générer les nombres de Fibonacci while (n > 0) { // Afficher le nombre de Fibonacci actuel printf("%d, ", e1); // Calculer le prochain nombre de Fibonacci int suivant = e1 + e2; // Mettre à jour le premier élément avec la valeur du deuxième élément e1 = e2; // Mise à jour du deuxième terme avec le prochain terme calculé e2 = suivant; n--; // Réduire la valeur de n pour la prochaine itération } return 0; }