400 Exercices Corrigés En C – Partie 8
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.
91. É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; }
92. É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; }
93. É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; }
94. 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; }
95. É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; }
96. 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; }
97. É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; }
98. É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; }
99. 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) { printf("%d, ", e1); // Afficher le nombre de Fibonacci actuel int suivant = e1 + e2; // Calculer le prochain nombre de Fibonacci e1 = e2; // Mettre à jour le premier élément avec la valeur du deuxième élément e2 = suivant; // Mise à jour du deuxième terme avec le prochain terme calculé n--; // Réduire la valeur de n pour la prochaine itération } return 0; }
100. Écrire un programme C pour inverser un nombre donné à l'aide d'une boucle "do-while".
Exemple de sortie:
Entrez un nombre: 12345 Nombre inversé: 54321
#include <stdio.h> int main() { int nbr, reversedNbr=0, r; printf("Entrez un nombre:"); scanf("%d", &nbr); do { // Extraire le dernier chiffre r = nbr % 10; // Créez le nombre inversé en ajoutant le chiffre extrait reversedNbr = reversedNbr * 10 + r; // Supprimer le dernier chiffre du nombre original nbr = nbr / 10; } while (nbr != 0); printf("Nombre inversé: %d\n", reversedNbr); return 0; }