Exercice Corrigé Langage C – Partie 6

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 pour vérifier si le nombre entré par l’utilisateur est un entier ou un flottant.
 
Exemple:

Entrez un nombre: 12.2

Sortie prévue:

Le nombre entré est un nombre flottant
Solution:

#include<stdio.h>

int main()
{
    char nbr[10];
    int point = 0, i = 0;

    printf("Entrez un nombre: ");
    scanf("%s", nbr);

    // jusqu'à ce que la chaîne n'est pas terminé
    while(nbr[i++] != '\0')    
    {
        // le point décimal est présent
        if(nbr[i] == '.')    
        {
            point = 1;
            break;
        }
    }

    if(point)
        printf("Le nombre entré est un nombre flottant");
    else
        printf("Le nombre entré est un nombre entier");
    return 0;
}
 

Exercice 2:

Ecrire un programme C qui vérifie si un nombre est Armstrong ou non.

Un nombre positif est appelé un nombre d’Armstrong s’il est égal à la somme des cubes de ses chiffres, par exemple 0, 1, 153, 370, 371, 407, etc.

En d’autres termes, l’équation suivante sera vérifiée

xy..z = xn + yn + ….. + zn

n est le nombre de digits

Par exemple, 370 est un nombre d’Armstrong de 3 chiffres

370 = 33 + 73 + 03
        = 27 + 343 + 0
        = 370
 
Exemple:

Entrez un entier à trois chiffres: 370

Sortie prévue:

370 est un nombre Armstrong.
Solution:

#include<stdio.h>

int main() {
    int originalNbr, nbr, reste, res = 0;
    
    printf("Entrez un entier à trois chiffres: ");
    scanf("%d", &nbr);
    
    originalNbr = nbr;

    while (originalNbr != 0) {
        // le reste contient le dernier chiffre
        reste = originalNbr % 10;
        
        res += reste * reste * reste;
        
        // supprimer le dernier chiffre du nombre d'origine
        originalNbr /= 10;
    }

    if (res == nbr)
        printf("%d est un nombre Armstrong.", nbr);
    else
        printf("%d n'est pas un nombre Armstrong.", nbr);

    return 0;
}
 

Exercice 3:

Ecrire un programme C pour inverser un tableau.
 
Exemple:

Entrez le nombre d'éléments dans le tableau : 3
Entrez les 3 éléments :
1
2
3

Sortie prévue:

Le tableau inversé: 3 2 1
Solution:

#include<stdio.h>

int main()
{
    int i, j, n, tab[100], tmp[100];
    printf("Entrez le nombre d'éléments dans le tableau : ");
    scanf("%d", &n);
    printf("Entrez les %d éléments : \n", n);

    for(i = 0; i < n; i++)
        scanf("%d", &tab[i]);

    /*
        stocker temporairement les éléments du tableau 'tab' 
        dans le tableau 'tmp' à partir de la fin du tableau 'tab'
    */
    for(i = n-1, j = 0; i >= 0; i--, j++)
        tmp[j] = tab[i];

    /*
        copie le tableau inversé dans le tableau original. 
        Ici, nous modifions le tableau d'origine pour l'inverser.
    */
    for(i = 0; i < n; i++)
        tab[i] = tmp[i];

    printf("Le tableau inversé: ");
    for(i = 0; i < n; i++)
        printf("%d ", tab[i]);
        
    return 0;
}
 

Exercice 4:

Ecrire un programme C qui trouve le max et le min d’un tableau.
 
Exemple:

Entrez le nombre d'éléments dans le tableau : 5
Entrez les 5 éléments :
2
5
9
7
1

Sortie prévue:

Le max est : 9                                                                                                                  
Le min est : 1
Solution:

#include<stdio.h>

int main()
{
    int tab[20], len, i, max, min;

    printf("Entrez le nombre d'éléments dans le tableau : ");
    scanf("%d", &len);

    printf("Entrez les %d éléments : \n", len);
    for(i = 0; i < len; i++)
        scanf("%d", &tab[i]);

    max = tab[0]; 
    for(i = 1; i < len; i++)
    {
        if(max < tab[i])   
        {
            max = tab[i]; 
        }
    }
    printf("Le max est : %d\n", max);

    min = tab[0];  
    for(i = 1; i < len; i++)
    {
        if(min > tab[i])   
        {
            min = tab[i];
        }
    }
    printf("Le min est : %d", min);
    return 0;
}
 

Exercice 5:

Ecrire un programme C qui supprime les doublons dans un tableau.
 
Exemple:

Entrez le nombre d'éléments dans le tableau : 6
Entrez les 6 éléments :
1
1
2
2
3
3

Sortie prévue:

Le tableau d'origine est: 1 1 2 2 3 3
Le nouveau tableau est: 1 2 3
Solution:

#include<stdio.h>

void main()
{
    int tab[50], i, j, k, size;

    printf("Entrez le nombre d'éléments dans le tableau : ");
    scanf("%d", &size);
	
    printf("Entrez les %d éléments : \n", size);
    for(i = 0; i < size; i++)
    {
        scanf("%d", &tab[i]);
    }

    printf("Le tableau d'origine est: ");
    for(i = 0; i < size; i++)
    {
        printf("%d ", tab[i]);
    }

    printf("\nLe nouveau tableau est: ");
    for(i = 0; i < size; i++)
    {
        for(j = i+1; j < size; )
        {
            if(tab[j] == tab[i])
            {
                for(k = j; k < size; k++)
                {
                    tab[k] = tab[k+1];
                }
                size--;
            }
            else
            {
                j++;
            }
        }
    }

    for(i = 0; i < size; i++)
    {
        printf("%d ", tab[i]);
    }
}
QCM-C

Laisser un commentaire

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