Exercice Corrigé Langage C – Partie 7

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 la somme de N nombres entrés par l’utilisateur en utilisant un tableau.
 
Exemple:

Entrez le nombre d'entiers que vous souhaitez additionner: 3
Entrez les 3 éléments :
1
2
3

Sortie prévue:

La somme est 6
Solution:

#include<stdio.h>

int main()
{
    int size, s = 0, c, tab[50];

    printf("Entrez le nombre d'entiers que vous souhaitez additionner: ");
    scanf("%d", &size);

    printf("Entrez les %d éléments : \n", size);

    for(c = 0; c < size; c++)
    {
        scanf("%d", &tab[c]);
        s += tab[c];
    }

    printf("La somme est %d", s);
    return 0;
}
 

Exercice 2:

Ecrire un programme C pour trier les éléments d’un tableau.
 
Exemple:

Entrez le nombre d'éléments que vous souhaitez trier: 5
Entrez les 5 éléments :
9
6
1
4
2

Sortie prévue:

Le tableau trié = 1 2 4 6 9
Solution:

#include<stdio.h>

void sort(int *tab, int size)
{
    int i, j, tmp;
    for(i = 1; i <= size-1; i++)
    {
        for(j = 0; j < size-i; j++)
        {
            if(tab[j] > tab[j+1])
            {
                tmp = tab[j];
                tab[j] = tab[j+1];
                tab[j+1] = tmp;
            }
        }
    }
}

void main()
{
    int tab[50], i, n;
    printf("Entrez le nombre d'éléments que vous souhaitez trier: ");
    scanf("%d", &n);

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

    sort(tab, n);

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

Exercice 3:

Ecrire un programme C pour calculer le déterminant d’une matrice 2 x 2.

[[a, b], 
 [c, d]]

Le déterminant de la matrice ci-dessus est: ad – bc:
 
Exemple:

Entrez les 4 éléments du tableau
7
1
5
3

Sortie prévue:

La matrice saisie est:
7       1
5       3
Le déterminant de la matrice 2x2 est : 21 - 5 =  16
Solution:

#include<stdio.h>

int main()
{
    int m[2][2], i, j;
    long det;

    printf("Entrez les 4 éléments du tableau\n");
    for(i = 0; i < 2; i++)
    for(j = 0; j < 2; j++)
		scanf("%d", &m[i][j]);

    printf("La matrice saisie est: \n\n");
    for(i = 0; i < 2; i++)
    {
        for(j = 0; j < 2; j++)
        {
            printf("%d\t", m[i][j]);
        }
        printf("\n");
    }

    // trouver le déterminant d'une matrice 2x2
    det = m[0][0]*m[1][1] - m[1][0]*m[0][1];
    printf("Le déterminant de la matrice 2x2 est : %d - %d =  %d", 
	m[0][0]*m[1][1], m[1][0]*m[0][1], det);

    return 0;
}
 

Exercice 4:

Ecrire un programme C pour trouver le factorielle d’un nombre en utilisant la récursivité. La récursivité se produit lorsqu’une instruction dans une fonction s’appelle elle-même plusieurs fois.
 
Exemple:

Entrez un nombre: 3

Sortie prévue:

Factorielle de 3 est 6
Solution:

#include<stdio.h>

int fact(int n)
{
    if(n==1 || n==0)
        return 1;
    else
        return (n*fact(n-1));
}

int main()
{
    int n, f;
    printf("Entrez un nombre: ");
    scanf("%d", &n);
    f = fact(n);
    printf("Factorielle de %d est %d", n, f);
    return 0;
}
 

Exercice 5:

Ecrire un programme C pour trouver le PGCD de deux nombres en utilisant la récursivité.
 
Exemple:

Entrez deux nombres pour trouver le PGCD : 60 36

Sortie prévue:

Le PGCD de 60 et 36 est: 12
Voir : PGCD en C
Solution:

#include<stdio.h>

int pgcd(int a, int b)
{
    if(a > b)
        pgcd(a-b, b);

    else if(b > a)
        pgcd(a, b-a);
    else
        return a;
}

int main()
{
    int a, b, res;
    printf("Entrez deux nombres pour trouver le PGCD : ");
    scanf("%d%d", &a, &b);
    res = pgcd(a, b);
    printf("Le PGCD de %d et %d est: %d", a, b, res);
    return 0;
}
QCM-C

Laisser un commentaire

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