Exercice Corrigé Langage C – Partie 5

Avec des exercices corrigés en langage C, vous pratiquerez divers concepts du langage C. Vous commencerez par des exercices langage C de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
 
 
Vous pouvez utiliser l’éditeur C suivant pour résoudre les exercices suivants: (Cliquez sur l’onglet input si vous souhaitez entrer des valeurs, cliquez sur Run pour exécuter votre programme, le résultat sera affichée sur l’onglet output).
 

 

Exercice 1:

Ecrire un programme C qui trouve les n premiers nombres premiers.

Un nombre premier est un nombre uniquement divisible par 1 ou par lui-même. Par exemple, 17 n’est divisible que par 17 ou par lui-même. Ainsi 2, 3, 5, 7, 11, 13, 17 …. sont des nombres premiers.
 
Exemple:

Entrez le nombre de nombres premiers à afficher: 7

Sortie prévue:

Les 7 premiers nombres premiers sont:
2
3
5
7
11
13
17
Solution:

#include<stdio.h>

int main()
{
  int nbr, j = 3, i, c;

  printf("Entrez le nombre de nombres premiers à afficher: ");
  scanf("%d", &nbr);

  if (nbr >= 1) {
    printf("Les %d premiers nombres premiers sont: \n",nbr);
    printf("2\n");
  }

  for (i = 2; i <= nbr;)
  {
    for (c = 2; c <= j - 1; c++)
    {
      if (j%c == 0)
        break;
    }
    if (c == j)
    {
      printf("%d\n", j);
      i++;
    }
    j++;
  }
  return 0;
}
 

Exercice 2:

Ecrire un programme C pour afficher la table de multiplication de n’importe quel nombre entré par l’utilisateur.
 
Exemple:

Entrez un nombre : 2

Sortie prévue:

2 * 1   =   2
2 * 2   =   4
2 * 3   =   6
2 * 4   =   8
2 * 5   =   10
2 * 6   =   12
2 * 7   =   14
2 * 8   =   16
2 * 9   =   18
2 * 10   =   20
Solution:

#include<stdio.h>

int main()
{
    int n,i;

    printf("Entrez un nombre : ");
    scanf("%d", &n);


    for(i = 1; i <= 10; i++)
    {
        printf("%d * %d   =   %d \n", n, i, n*i);
    }

    return 0;
}
 

Exercice 3:

Ecrire un programme C pour vérifier si un nombre est un palindrome. Un nombre est un palindrome si il s’écrit de la même manière après l’inversion de ce dernier. Exemples: 232, 191, 22022, 111, 666, etc.
 
Exemple:

Entrez un nombre: 212

Sortie prévue:

Le nombre 212 est un palindrome
Solution:

#include<stdio.h>

void main()
{
    int n, reste, originNBR, reversedNBR = 0;
    printf("Entrez un nombre: ");
    scanf("%d", &n);
    originNBR = n;
    
   // le nombre est inversé à l'intérieur de la boucle while.
   while(n > 0)
   {
      reste = n%10;
      reversedNBR = (reversedNBR*10) + reste;
      n = n/10;
   }

   // ici le nombre inversé est comparé au nombre donné.
   if(reversedNBR == originNBR)
   {
      printf("Le nombre %d est un palindrome", originNBR);
   }
   else
   {
      printf("Le nombre %d n'est pas un palindrome", originNBR);
   }
}
 

Exercice 4:

Ecrire un programme C pour trouver la somme des chiffres d’un nombre.
 
Exemple:

Entrez un nombre: 123

Sortie prévue:

La somme des chiffres est 6
Solution:

#include<stdio.h>

int main()
{
    int n, somme = 0, c, reste;

    printf("Entrez un nombre: ");
    scanf("%d", &n);

    while(n != 0)
    {
        reste = n%10;
        somme += reste;
        n = n/10;
    }

    printf("La somme des chiffres est %d\n\n", somme);
    return 0;
}
 

Exercice 5:

Ecrire un programme C pour trouver l’exponentiel d’un nombre sans utiliser la méthode pow()
 
Exemple:

Entrez le nombre et son exponentielle: 4 2

Sortie prévue:

4^2 = 16
Solution:

#include<stdio.h>

int main()
{
    int n, e, e1, value = 1;

    printf("Entrez le nombre et son exponentielle: ");
    scanf("%d%d",&n, &e);

    e1 = e;

    while(e-- > 0)
    {
        // multiplier n à lui-même e fois
        value *= n; 
    }

    printf("%d^%d = %d", n, e1, value);
    return 0;
}
QCM-C

Une réflexion sur “Exercice Corrigé Langage C – Partie 5

  • juillet 26, 2023 à 10:36 am
    Permalien

    Bonjour,
    D’abord merci pour vos exercices très ludiques.
    Question :
    Quel est l’intérêt d’entrer ici dans une complexité quadratique?
    Cette proposition ne convient-elle pas?

    #include <stdio.h>
    #include <stdlib.h> 
    
    void main()
    {
        int i = 2, nb = 0;
        
        printf("Entrez un nombre quelconque : \n");
        scanf("%d", &nb);
        printf("\t%d est un nombre premier.\n", i);
        
        for (i; i <= nb; i++){
            if(i % i == 0 && i % 1 == 0 && i % 2 != 0){
                printf("\t%d est un nombre premier.\n", i);
            }
        }
        
    }
    Répondre

Laisser un commentaire

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