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]);
}
}
