400 Exercices Corrigés En C – Partie 13

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.

 
 

 

141. Écrire un programme C pour afficher une chaîne de caractères dans l’ordre inverse.

Exemple de sortie:

Entrez la chaîne à inverser: Hello
La chaîne inversée est: olleH
#include <stdio.h>
#include <string.h>

void main()
{
   char str[100], tmp;
   int l, g, d, i;

   printf("Entrez la chaîne à inverser: ");
   scanf("%s", str);
   
   // Calculer la longueur de la chaîne
   l = strlen(str);
   
   // Initialisation les indices de gauche et de droite pour la permutation
   g = 0;
   d = l - 1;
   
   // Boucle pour la permutation des caractères de gauche à droite
   for(i = g; i < d; i++)
   {
	   tmp = str[i];
	   str[i] = str[d];
	   str[d] = tmp;
	   d--;
   }

   printf("La chaîne inversée est: %s", str);
}
 
 

142. Écrire un programme C pour trouver la longueur d'une chaîne de caractères sans utiliser la fonction strlen().

Exemple de sortie:

Entrez la chaîne de caractères: Hello
La longueur de la chaîne de caractères est: 5
#include <stdio.h>

void main()
{
    char str[50];
    int i, l = 0;

    printf("Entrez la chaîne de caractères:");
    scanf("%s", str);
	
    // Boucle pour compter les caractères dans la chaîne
    for (i = 0; str[i] != '\0'; i++)
    {
        l++;
    }

    printf("La longueur de la chaîne de caractères est: %d", l);
}
 
 

143. Écrire un programme en C pour lire n nombre de valeurs dans un tableau et les afficher dans l'ordre inverse.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 3 
Entrer les 3 éléments dans le tableau: 
tab[0]: 8 
tab[1]: 4 
tab[2]: 5
Les valeurs stockées dans le tableau sont: 8 4 5
Les valeurs stockées dans le tableau en sens inverse sont: 5 4 8
#include <stdio.h>

int main()
{
   int i, n, a[100];

   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", &a[i]);
   }

   printf("\nLes valeurs stockées dans le tableau sont: ");
   for (i = 0; i < n; i++)
   {
       printf("% 5d", a[i]); //Afficher chaque élément du tableau
   }

   printf("\nLes valeurs stockées dans le tableau en sens inverse sont:\n");
   for (i = n - 1; i >= 0; i--)
   {
       printf("% 5d", a[i]); //Afficher chaque élément en ordre inverse
   }

   return 0;
}
 
 

144. Écrire un programme en C pour copier les éléments d'un tableau dans un autre tableau.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 3 
Entrer les 3 éléments dans le tableau: 
tab[0]: 8 
tab[1]: 4 
tab[2]: 5
Les valeurs stockées dans le tableau sont: 8 4 5
Les éléments copiés dans le 2ème tableau sont: 8 4 5
#include <stdio.h>

int main()
{
    int tab1[100], tab2[100];
    int i, 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);
    for (i = 0; i < n; i++)
    {
        printf("tab[%d]: ", i);
        // Lire l'entrée et la stocker dans le premier tableau
        scanf("%d", &tab1[i]);  
    }
	
    // Copie les éléments du 1er tableau dans le 2éme tableau.
    for (i = 0; i < n; i++)
    {
        tab2[i] = tab1[i];
    }

    printf("\nLes valeurs stockées dans le tableau sont: ");
    for (i = 0; i < n; i++)
    {
        printf("% 5d", tab1[i]); 
    }
	
    printf("\nLes éléments copiés dans le 2ème tableau sont:");
    for (i = 0; i < n; i++)
    {
        printf("% 5d", tab2[i]);
    }
	
    return 0;
}
 
 

145. Écrire un programme en C pour compter le nombre total d'éléments dupliqués dans 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]: 5
tab[1]: 1 
tab[2]: 1
tab[3]: 1
Le nombre total d'éléments dupliqués trouvés dans le tableau est: 2
#include <stdio.h>

int main()
{
    int tab[100]; 
    int n, compteur=0; 
    int i, j; 
	
    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);
        // Lire l'entrée et la stocker dans le premier tableau
        scanf("%d", &tab[i]); 
    }
	
    // Vérifier les doublons dans le tableau
    for (i = 0; i < n; i++)
    {
        for (j = i + 1; j < n; j++)
        {
            if (tab[i] == tab[j])
            {
                //Incrémenter le compteur de doublons si un doublon est trouvé
                compteur++; 
                //Sortir de la boucle dès qu'un doublon est trouvé				
                break;  
            }
        }
    }

    printf("Le nombre total d'éléments dupliqués trouvés dans le tableau est: %d", compteur);
	
    return 0; 
}
 
 

146. Écrire un programme en C pour afficher tous les éléments uniques 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]: 5
tab[1]: 7 
tab[2]: 7
tab[3]: 1
Les éléments uniques trouvés dans le tableau sont: 5 1
#include <stdio.h>

int main()
{
    int tab[100], n, compteur = 0;
    int i, j, k; 

	
    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);
        // Lire l'entrée et la stocker dans le premier tableau
        scanf("%d", &tab[i]);
    }

    printf("\nLes éléments uniques trouvés dans le tableau sont: ");
    for (i = 0; i < n; i++)
    {
        //Réinitialiser le compteur pour chaque élément
        compteur = 0;
        for (j = 0, k = n; j < k + 1; j++)
        {
            //Incrémenter le compteur lorsque la valeur recherchée est dupliquée
            if (i != j)
            {
                if (tab[i] == tab[j])
                {
                    compteur++;
                }
            }
        }
        if (compteur == 0)
        {
            printf("%d ", tab[i]); //Afficher l'élément unique
        }
    }

    return 0;
}
 
 

147. Écrire un programme en C pour fusionner deux tableaux de même taille triés 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]: 1
tab[1]: 2 
tab[2]: 3
Entrer le nombre d'éléments à stocker dans le tableau: 3 
Entrer les 3 éléments dans le tableau: 
tab[0]: 1
tab[1]: 2 
tab[2]: 3
Le tableau fusionné par ordre décroissant est: 3   3   2   2   1   1
#include <stdio.h>

int main() {
  int tab1[100], tab2[100], tab3[200];
  int i, j, k;
  int n1, n2, n3;

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

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

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

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

  /* Taille du tableau fusionné est égale à la taille du 
	1er tableau + taille du 2éme tableau */
  n3 = n1 + n2;
  //insertion dans le troisième tableau
  for (i = 0; i < n1; i++) {
    tab3[i] = tab1[i];
  }
  for (j = 0; j < n2; j++) {
    tab3[i] = tab2[j];
    i++;
  }
  // trier le tableau par ordre décroissant
  for (i = 0; i < n3; i++) {
    for (k = 0; k < n3 - 1; k++) {

      if (tab3[k] <= tab3[k + 1]) {
        j = tab3[k + 1];
        tab3[k + 1] = tab3[k];
        tab3[k] = j;
      }
    }
  }

  // Affiche le tableau fusionné
  printf("\nLe tableau fusionné par ordre décroissant est: ");
  for (i = 0; i < n3; i++) {
    printf("%d   ", tab3[i]);
  }
  printf("\n\n");
  return 0;
}
 
 

148. Écrire un programme en C pour compter la fréquence de chaque élément dans le tableau.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 3 
Entrer les 3 éléments dans le tableau: 
tab[0]: 8
tab[1]: 8 
tab[2]: 9
La fréquence de tous les éléments du tableau: 
8 se produit 2 fois
9 se produit 1 fois
#include <stdio.h>

int main()
{
    int tab[100], freq[100];
    int n, i, j, compteur;

    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]);
        //Initialiser le tableau des fréquences avec -1
        freq[i] = -1; 
    }

    // Compter la fréquence de chaque élément du tableau
    for (i = 0; i < n; i++)
    {
        //Initialiser le compteur pour chaque élément
        compteur = 1; 
        for (j = i + 1; j < n; j++)
        {
            if (tab[i] == tab[j])
            {
                //Incrémenter le compteur pour les éléments correspondants
                compteur++;  
                //Marquer la fréquence de l'élément dupliqué comme 0				
                freq[j] = 0; 
            }
        }

        /* Si la valeur du tableau de fréquences n'est pas marquée 
		comme 0, mettez-la sur le compteur */
        if (freq[i] != 0)
        {
            freq[i] = compteur;
        }
    }

    printf("\nLa fréquence de tous les éléments du tableau: \n");
    for (i = 0; i < n; i++)
    {
        if (freq[i] != 0)
        {
            printf("%d se produit %d fois\n", tab[i], freq[i]);
        }
		return 0;
    }
}
 
 

149. Écrire un programme en C pour trouver le maximum et le minimum dans le tableau.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 3 
Entrer les 3 éléments dans le tableau: 
tab[0]: 10
tab[1]: 9 
tab[2]: 2
Le maximum est: 10 
Le minimum est: 2
#include <stdio.h>

int main()
{
    int tab[100];
    int i, max, min, 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]);
    }

    //Initialiser max et min avec le premier élément du tableau
    max = tab[0];
    min = tab[0];

    // Parcourir le tableau pour trouver le maximum et minimum
    for (i = 1; i < n; i++)
    {
        // Actualiser max si l'élément actuel est plus grand
        if (tab[i] > max)
        {
            max = tab[i];
        }

        // Actualiser min si l'élément actuel est plus petit
        if (tab[i] < min)
        {
            min = tab[i];
        }
    }

    printf("Le maximum est: %d\n", max);
    printf("Le minimum est: %d", min);
	
    return 0;
}
 
 

150. Écrire un programme en C pour séparer les nombres entiers pairs et impairs dans des tableaux séparés.

Exemple de sortie:

Entrer le nombre d'éléments à stocker dans le tableau: 4 
Entrer les 4 éléments dans le tableau: 
tab[0]: 1
tab[1]: 2 
tab[2]: 3
tab[3]: 4
Les éléments pairs sont: 2  4
Les éléments impairs sont: 1  3
#include <stdio.h>

int main()
{
    int tab1[10], tab2[10], tab3[10];
    int i, j = 0, k = 0, 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", &tab1[i]);
    }

    // Séparer les entiers pairs et impairs dans des tableaux séparés
    for (i = 0; i < n; i++)
    {
        if (tab1[i] % 2 == 0)
        {
            tab2[j] = tab1[i];
            j++;
        }
        else
        {
            tab3[k] = tab1[i];
            k++;
        }
    }

    printf("\nLes éléments pairs sont: ");
    for (i = 0; i < j; i++)
    {
        printf("%d ", tab2[i]);
    }

    printf("\nLes éléments impairs sont: ");
    for (i = 0; i < k; i++)
    {
        printf("%d ", tab3[i]);
    }

    return 0;
}
 

Laisser un commentaire

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