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;
}
