400 Exercices Corrigés En C – Partie 14

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.

 
 

 

151. Écrire un programme en C pour trier les éléments d’un tableau par ordre croissant.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 3 
Entrer les 3 éléments dans le tableau: 
tab[0]: 3
tab[1]: 1 
tab[2]: 2
Éléments du tableau triés par ordre croissant: 1 2 3
#include <stdio.h>

void main()
{
    int tab[100];
    int n, i, j, tmp;

    printf("Entrer le nombre d'éléments à stocker dans le tableau:");
    scanf("%d", &n);

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

    //Trier les éléments par ordre croissant en utilisant le tri à bulles
    for (i = 0; i < n; i++)
    {
        for (j = i + 1; j < n; j++)
        {
            if (tab[j] < tab[i])
            {
                //Échanger des éléments s'ils sont mal ordonnés
                tmp = tab[i];
                tab[i] = tab[j];
                tab[j] = tmp;
            }
        }
    }

    printf("\nÉléments du tableau triés par ordre croissant: ");
    for (i = 0; i < n; i++)
    {
        printf("%d  ", tab[i]);
    }
    printf("\n\n");
}
 
 

152. Écrire un programme en C pour trier les éléments d'un tableau par ordre décroissant.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 3 
Entrer les 3 éléments dans le tableau: 
tab[0]: 3
tab[1]: 1 
tab[2]: 2
Éléments du tableau triés par ordre décroissant: 3 2 1
#include <stdio.h>

void main()
{
    int tab[100];
    int n, i, j, tmp;

    printf("Entrer le nombre d'éléments à stocker dans le tableau:");
    scanf("%d", &n);

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

    //Trier les éléments par ordre croissant en utilisant le tri à bulles
    for (i = 0; i < n; i++)
    {
        for (j = i + 1; j < n; j++)
        {
            if (tab[i] < tab[j])
            {
                //Échanger des éléments s'ils sont mal ordonnés
                tmp = tab[i];
                tab[i] = tab[j];
                tab[j] = tmp;
            }
        }
    }

    printf("\nÉléments du tableau triés par ordre décroissant: ");
    for (i = 0; i < n; i++)
    {
        printf("%d  ", tab[i]);
    }
    printf("\n\n");
}
 
 

153. Ecrivez un programme en C pour insérer une valeur dans un tableau triée.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 3 
Entrer les 3 éléments dans le tableau: 
tab[0]: 2
tab[1]: 4 
tab[2]: 8
Saisir la valeur à insérer: 7
Après l'insertion, le tableau est: 2 4 7 8
#include <stdio.h>

int main()
{
    int tab[100], i, n, p, nbr;

    printf("Entrer le nombre d'éléments à stocker dans le tableau:");
    scanf("%d", &n);

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

    printf("Saisir la valeur à insérer: ");
    scanf("%d", &nbr);

    // Déterminer la position où la nouvelle valeur sera insérée
    for (i = 0; i < n; i++)
    {
        if (nbr < tab[i])
        {
            p = i;
            break;
        }
        else
        {
            p = i + 1;
        }
    }

    //Déplacer toutes les données à droite du tableau pour faire de la place
    for (i = n + 1; i >= p; i--)
        tab[i] = tab[i - 1];

    // Insérer la nouvelle valeur à l'endroit approprié
    tab[p] = nbr;

    // Afficher le tableau après l'insertion
    printf("\nAprès l'insertion, le tableau est: ");
    for (i = 0; i <= n; i++)
        printf("% 4d", tab[i]);

    return 0;
}
 
 

154. Ecrivez un programme en C pour insérer une valeur dans un tableau non triée à une position donnée.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 3 
Entrer les 3 éléments dans le tableau: 
tab[0]: 2
tab[1]: 4 
tab[2]: 8
Saisir la valeur à insérer: 7
Saisir la position où la valeur doit être insérée: 2
Après l'insertion, le tableau est: 2 7 4 8
#include <stdio.h>

void main()
{
    int tab[100], i, n, pos, nbr;

    printf("Entrer le nombre d'éléments à stocker dans le tableau:");
    scanf("%d", &n);

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

    // Saisir la valeur à insérer et sa position
    printf("Saisir la valeur à insérer: ");
    scanf("%d", &nbr);
    printf("Saisir la position où la valeur doit être insérée: ");
    scanf("%d", &pos);

    //Déplacer toutes les données à droite du tableau pour faire de la place
    for (i = n; i >= pos; i--)
        tab[i] = tab[i - 1];

    // Insérer la nouvelle valeur à la position donnée
    tab[pos - 1] = nbr;

    // Afficher le tableau après l'insertion
    printf("\nAprès l'insertion, le tableau est: ");
    for (i = 0; i <= n; i++)
        printf("% 4d", tab[i]);
}
 
 

155. Écrire un programme en C pour supprimer un élément d'un tableau à une position donnée.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 3 
Entrer les 3 éléments dans le tableau: 
tab[0]: 2
tab[1]: 4 
tab[2]: 8
Saisir la position à supprimer: 2
Après la suppression, le tableau est: 2 8
#include <stdio.h>

int main() {
    int tab[50], i, pos, n;

    printf("Entrer le nombre d'éléments à stocker dans le tableau:");
    scanf("%d", &n);

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

    printf("\nSaisir la position à supprimer: ");
    scanf("%d", &pos);

    // Localiser la position dans le tableau
    i = 0;
    while (i != pos - 1)
        i++;

    // Décaler les éléments vers la gauche pour remplacer l'élément supprimé
    while (i < n) {
        tab[i] = tab[i + 1];
        i++;
    }
    n--;

    // Afficher le tableau après suppression
    printf("\nAprès la suppression, le tableau est: ");
    for (i = 0; i < n; i++) {
        printf("  %d", tab[i]);
    }

    return 0; 
}
 
 

156. Écrire un programme en C pour trouver le deuxième plus grand élément d'un tableau.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 4 
Entrer les 4 éléments dans le tableau: 
tab[0]: 2
tab[1]: 4 
tab[2]: 8
tab[3]: 9
Le deuxième élément le plus grand du tableau est: 8
#include <stdio.h>

void main() {
    int tab[50], i, j=0, n, max1, max2;

    printf("Entrer le nombre d'éléments à stocker dans le tableau: ");
    scanf("%d", &n);

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

    //Trouver la position de l'élément le plus grand dans le tableau
    max1 = 0;
    for (i = 0; i < n; i++) {
        if (max1 < tab[i]) {
            max1 = tab[i];
            j = i;
        }
    }

    /* Ignorer l'élément le plus grand et trouver le deuxième 
	élément le plus grand du tableau */
    max2 = 0;
    for (i = 0; i < n; i++) {
        if (i == j) {
            i++;  //Ignorer l'élément le plus grand
            i--;
        } else {
            if (max2 < tab[i]) {
                max2 = tab[i];
            }
        }
    }

    printf("Le deuxième élément le plus grand du tableau est: %d", max2);
}
 
 

157. Écrire un programme en C pour trouver le deuxième plus petit élément d'un tableau.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 4 
Entrer les 4 éléments dans le tableau: 
tab[0]: 2
tab[1]: 4 
tab[2]: 8
tab[3]: 9
Le deuxième élément le plus petit du tableau est: 4
#include <stdio.h>

void main() {
    int tab[50], i, j=0, n, min1, min2;

    printf("Entrer le nombre d'éléments à stocker dans le tableau:");
    scanf("%d", &n);

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

    // Trouver la position du plus petit élément du tableau
    min1 = tab[0];
    for (i = 0; i < n; i++) {
        if (min1 > tab[i]) {
            min1 = tab[i];
            j = i;
        }
    }

    /* Ignorer l'élément le plus petit et trouver le deuxième élément
	le plus petit du tableau */
    min2 = 999999;
    for (i = 0; i < n; i++) {
        if (i == j) {
            i++;  //Ignorer le plus petit élément
            i--;
        } else {
            if (min2 > tab[i]) {
                min2 = tab[i];
            }
        }
    }

    printf("Le deuxième élément le plus petit du tableau est: %d", min2);
}
 
 

158. Ecrivez un programme en C pour affichez une matrice de taille 3x3 en utilisant un tableau 2D.

Exemple de sortie:

Entrer les éléments de la matrice: 
matrice[0][0] : 1 
matrice[0][1] : 2 
matrice[0][2] : 3 
matrice[1][0] : 4 
matrice[1][1] : 5 
matrice[1][2] : 6 
matrice[2][0] : 7 
matrice[2][1] : 8 
matrice[2][2] : 9

La matrice est : 
1   2   3 
4   5   6 
7   8   9 
#include <stdio.h>

void main() {
    int matrice[3][3], i, j;

    printf("Entrer les éléments de la matrice: \n");
    for (i = 0; i < 3; i++) {
        for (j = 0; j < 3; j++) {
            printf("matrice[%d][%d]: ", i, j);
            scanf("%d", &matrice[i][j]);
        }
    }

    // Afficher la matrice
    printf("\nLa matrice est : \n");
    for (i = 0; i < 3; i++) {
        printf("\n");
        for (j = 0; j < 3; j++)
            printf("%d\t", matrice[i][j]);
    }
}
 
 

159. Ecrivez un programme en C pour additionner deux matrices de même taille.

Exemple de sortie:

Entrer la taille de la matrice: 2 
Entrer les éléments de la première matrice: 
matriceA[0][0] : 1 
matriceA[0][1] : 2 
matriceA[1][0] : 3 
matriceA[1][1] : 4 
Entrer les éléments de la deuxième matrice: 
matriceB[0][0] : 5
matriceB[0][1] : 6 
matriceB[1][0] : 7 
matriceB[1][1] : 8  
La première matrice est: 
1  2 
3  4 
La deuxième matrice est: 
5  6 
7  8 
La somme des deux matrices est: 
6  8 
10 12
#include <stdio.h>

void main() {
    int matriceA[50][50], matriceB[50][50], somme[50][50], i, j, n;

    printf("Entrer la taille de la matrice: ");
    scanf("%d", &n);

    printf("Entrer les éléments de la première matrice: \n");
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            printf("matriceA[%d][%d] : ", i, j);
            scanf("%d", &matriceA[i][j]);
        }
    }

    printf("Entrer les éléments de la deuxième matrice: \n");
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            printf("matriceB[%d][%d] : ", i, j);
            scanf("%d", &matriceB[i][j]);
        }
    }

    // Afficher la première matrice
    printf("\nLa première matrice est: \n");
    for (i = 0; i < n; i++) {
        printf("\n");
        for (j = 0; j < n; j++)
            printf("%d\t", matriceA[i][j]);
    }

    // Afficher la première matrice
    printf("\nLa deuxième matrice est: \n");
    for (i = 0; i < n; i++) {
        printf("\n");
        for (j = 0; j < n; j++)
            printf("%d\t", matriceB[i][j]);
    }

    // Calculer la somme des matrices
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
            somme[i][j] = matriceA[i][j] + matriceB[i][j];

    // Afficher la somme de deux matrices
    printf("\nLa somme des deux matrices est: \n");
    for (i = 0; i < n; i++) {
        printf("\n");
        for (j = 0; j < n; j++)
            printf("%d\t", somme[i][j]);
    }
}
 
 

160. Ecrivez un programme en C pour la soustraction de deux matrices.

Exemple de sortie:

Entrer la taille de la matrice: 2 
Entrer les éléments de la première matrice: 
matriceB[0][0] : 5
matriceB[0][1] : 6 
matriceB[1][0] : 7 
matriceB[1][1] : 8  
Entrer les éléments de la deuxième matrice: 
matriceA[0][0] : 1 
matriceA[0][1] : 2 
matriceA[1][0] : 3 
matriceA[1][1] : 4 
La première matrice est: 
5  6 
7  8  
La deuxième matrice est: 
1  2 
3  4
La soustraction des deux matrices est: 
4  4 
4  4
#include <stdio.h>

void main() {
    int matriceA[50][50], matriceB[50][50], soustraction[50][50],i,j,n;

    printf("Entrer la taille de la matrice: ");
    scanf("%d", &n);

    printf("Entrer les éléments de la première matrice: \n");
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            printf("matriceA[%d][%d] : ", i, j);
            scanf("%d", &matriceA[i][j]);
        }
    }

    printf("Entrer les éléments de la deuxième matrice: \n");
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            printf("matriceB[%d][%d] : ", i, j);
            scanf("%d", &matriceB[i][j]);
        }
    }

    // Afficher la première matrice
    printf("\nLa première matrice est: \n");
    for (i = 0; i < n; i++) {
        printf("\n");
        for (j = 0; j < n; j++)
            printf("%d\t", matriceA[i][j]);
    }

    // Afficher la première matrice
    printf("\nLa deuxième matrice est: \n");
    for (i = 0; i < n; i++) {
        printf("\n");
        for (j = 0; j < n; j++)
            printf("%d\t", matriceB[i][j]);
    }

    // Calculer la soustraction des matrices
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
            soustraction[i][j] = matriceA[i][j] - matriceB[i][j];

    // Afficher la soustraction de deux matrices
    printf("\nLa soustraction des deux matrices est: \n");
    for (i = 0; i < n; i++) {
        printf("\n");
        for (j = 0; j < n; j++)
            printf("%d\t", soustraction[i][j]);
    }
}
 

Laisser un commentaire

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