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.

 
 

Veuillez voir les exercices de 1 à 30, 31 à 40, 51 à 60, 61 à 70, 71 à 80 et de 81 à 90.

 

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *