400 Exercices Corrigés En C – Partie 15
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.
161. Écrire un programme en C pour multiplier deux matrices carrées.
Exemple de sortie:
Entrer le nombre de lignes et de colonnes: 2 2 Entrer les éléments de la première matrice: matriceB[0][0] : 1 matriceB[0][1] : 2 matriceB[1][0] : 1 matriceB[1][1] : 3 Entrer les éléments de la deuxième matrice: matriceA[0][0] : 3 matriceA[0][1] : 2 matriceA[1][0] : 1 matriceA[1][1] : 1 La première matrice est: 1 2 1 3 La deuxième matrice est: 3 2 1 1 La multiplication des deux matrices est: 5 4 6 5
162. Écrire un programme en C pour trouver la transposée d’une matrice donnée.
Exemple de sortie:
Entrer le nombre de lignes et de colonnes: 3 2 Entrer les éléments de la première matrice: 1 2 3 4 5 6 La matrice est: 1 2 3 4 5 6 La transposition de la matrice est: 1 3 5 2 4 6
163. Ecrivez un programme en C pour trouver la somme de la diagonale droite d’une matrice.
Les éléments de la diagonale droite sont 5, 3, 1. La somme de la diagonale droite est donc 9(5+3+1).
Exemple de sortie:
Entrer la taille de la matrice: 2 Entrer les éléments de la matrice: matrice[0][0] : 1 matrice[0][1] : 2 matrice[1][0] : 3 matrice[1][1] : 4 La matrice est: 1 2 3 4 La somme des éléments de la diagonale droite est: 5
#include <stdio.h> int main() { int i, j, matrice[50][50], n, s=0; printf("Entrer la taille de la matrice: "); scanf("%d", &n); printf("Entrer les éléments de la matrice: \n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("matrice[%d][%d] : ", i, j); scanf("%d", &matrice[i][j]); // Calculer la somme des éléments de la diagonale droite if (i == j) { s = s + matrice[i][j]; } } } // Afficher la matrice printf("La matrice est: \n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("% 4d", matrice[i][j]); } printf("\n"); } // Afficher la somme des éléments de la diagonale droite printf("La somme des éléments de la diagonale droite est: %d", s); return 0; }
164. Ecrivez un programme en C pour trouver la somme de la diagonale gauche d'une matrice.
Les éléments de la diagonale droite sont 3, 3, 1. La somme de la diagonale gauche est donc 7(3+3+1).
Exemple de sortie:
Entrer la taille de la matrice: 2 Entrer les éléments de la matrice: matrice[0][0] : 1 matrice[0][1] : 2 matrice[1][0] : 3 matrice[1][1] : 4 La matrice est: 1 2 3 4 La somme des éléments de la diagonale gauche est: 5
#include <stdio.h> int main() { int matrice[50][50], i, j, s=0, n, t=0; printf("Entrer la taille de la matrice: "); scanf("%d", &n); /* Stocker la taille de la matrice pour le parcours de la diagonale gauche */ t = n; printf("Entrer les éléments de la matrice: \n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("matrice[%d][%d] : ", i, j); scanf("%d", &matrice[i][j]); } } // Afficher la matrice printf("La matrice est: \n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("% 4d", matrice[i][j]); } printf("\n"); } // Calculer la somme de la diagonale gauche for (i = 0; i < n; i++) { //Décrémenter pour accéder aux éléments de la diagonale gauche t = t - 1; for (j = 0; j < n; j++) { if (j == t) { // Addition d'éléments sur la diagonale gauche s = s + matrice[i][j]; } } } printf("La somme des éléments de la diagonale gauche est: %d", s); return 0; }
165. Ecrivez un programme en C pour trouver la somme des lignes et des colonnes d'une matrice.
Exemple de sortie:
Entrer la taille de la matrice: 2 Entrer les éléments de la matrice: matrice[0][0] : 1 matrice[0][1] : 2 matrice[1][0] : 3 matrice[1][1] : 4 La matrice est: 1 2 3 4 La somme des lignes et des colonnes de la matrice est: 1 2 3 3 4 7 4 6
#include <stdio.h> int main() { int i, j, k, n, matrice[10][10], lsum[10], csum[10]; printf("Entrer la taille de la matrice: "); scanf("%d", &n); printf("Entrer les éléments de la matrice:\n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("matrice[%d][%d] : ", i, j); scanf("%d", &matrice[i][j]); } } // Afficher la matrice printf("La matrice est: \n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("% 4d", matrice[i][j]); } printf("\n"); } // Calculer la somme des lignes for (i = 0; i < n; i++) { lsum[i] = 0; for (j = 0; j < n; j++) { lsum[i] = lsum[i] + matrice[i][j]; } } // Calculer la somme des colonnes for (i = 0; i < n; i++) { csum[i] = 0; for (j = 0; j < n; j++) { csum[i] = csum[i] + matrice[j][i]; } } // Afficher la matrice avec les sommes des lignes printf("La somme des lignes et des colonnes de la matrice est:\n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("% 4d", matrice[i][j]); } // Afficher la somme de chaque ligne printf("% 8d", lsum[i]); printf("\n"); } printf("\n"); for (j = 0; j < n; j++) { // Afficher la somme de chaque colonne printf("% 4d", csum[j]); } return 0; }
166. Écrire un programme en C pour afficher le triangle supérieur d'une matrice donnée.
Exemple de sortie:
Entrer la taille de la matrice: 3 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 Mettre des zéros dans la matrice triangulaire inférieure: 1 2 3 0 5 6 0 0 9
#include <stdio.h> int main() { int matrice[10][10], n, i, j; float determinant = 0; printf("Entrer la taille de la matrice: "); scanf("%d", &n); printf("Entrer les éléments de la matrice: \n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("matrice[%d][%d] : ", i, j); scanf("%d", &matrice[i][j]); } } // Afficher la matrice originale printf("La matrice est:\n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("% 4d", matrice[i][j]); } printf("\n"); } /* Afficher une matrice triangulaire supérieur en mettant à zéro les éléments triangulaires inférieures */ printf("\nMettre des zéros dans la matrice triangulaire inférieure:\n"); for (i = 0; i < n; i++) { printf("\n"); for (j = 0; j < n; j++) { if (i <= j) { // Afficher les éléments originaux si i <= j (triangle supérieur) printf("% 4d", matrice[i][j]); } else { printf("% 4d", 0); // Afficher zéro si i > j (triangle inférieur) } } } return 0; }
167. Écrire un programme en C pour afficher le triangle inférieure d'une matrice donnée.
Exemple de sortie:
Entrer la taille de la matrice: 3 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 Mettre des zéros dans la matrice triangulaire supérieur: 1 0 0 4 5 0 7 8 9
#include <stdio.h> int main() { int matrice[10][10], n, i, j; float determinant = 0; printf("Entrer la taille de la matrice: "); scanf("%d", &n); printf("Entrer les éléments de la matrice: \n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("matrice[%d][%d] : ", i, j); scanf("%d", &matrice[i][j]); } } // Afficher la matrice originale printf("La matrice est:\n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("% 4d", matrice[i][j]); } printf("\n"); } /* Afficher une matrice triangulaire supérieur en mettant à zéro les éléments triangulaires inférieures */ printf("\nMettre des zéros dans la matrice triangulaire inférieure:\n"); for (i = 0; i < n; i++) { printf("\n"); for (j = 0; j < n; j++) { if (i >= j) { // Afficher les éléments originaux si i <= j (triangle supérieur) printf("% 4d", matrice[i][j]); } else { printf("% 4d", 0); // Afficher zéro si i > j (triangle inférieur) } } } return 0; }
168. Ecrivez un programme en C pour calculer le déterminant d'une matrice 3 x 3.
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 Le déterminant de la matrice est : 0
#include <stdio.h> int main() { int matrice[10][10], i, j, n; int det = 0; 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("La matrice est: \n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("% 4d", matrice[i][j]); } printf("\n"); } // Calculer le déterminant de la matrice 3x3 for (i = 0; i < 3; i++) { det = det + (matrice[0][i] * (matrice[1][(i + 1) % 3] * matrice[2][(i + 2) % 3] - matrice[1][(i + 2) % 3] * matrice[2][(i + 1) % 3])); } // Afficher le déterminant de la matrice printf("\nLe déterminant de la matrice est : %d", det); return 0; }
169. Écrire un programme en C pour accepter une matrice et déterminer s'il s'agit d'une matrice creuse.
Une matrice creuse est un cas particulier de matrice dans laquelle le nombre d'éléments nuls est beaucoup plus élevé que le nombre d'éléments non nuls. Exemple:
|0 0| |1 0|
Exemple de sortie:
Entrer le nombre de lignes de la matrice: 2 Entrer le nombre de colonnes de la matrice: 2 Entrer les éléments de la matrice: matrice[0][0] : 0 matrice[0][1] : 0 matrice[1][0] : 1 matrice[1][1] : 0 La matrice donnée est une matrice creuse. Il y a 3 nombres de zéros dans la matrice.
#include <stdio.h> int main() { int matrice[10][10], i, j, l, c, compteur=0; printf("Entrer le nombre de lignes de la matrice:"); scanf("%d", &l); printf("Entrer le nombre de colonnes de la matrice:"); scanf("%d", &c); printf("Entrer les éléments de la matrice:\n"); for (i = 0; i < l; i++) { for (j = 0; j < c; j++) { printf("matrice[%d][%d] : ", i, j); scanf("%d", &matrice[i][j]); if (matrice[i][j] == 0) { //Incrémenter le compteur pour les éléments nuls ++compteur; } } } /* Vérifier si les zéros représentent plus de la moitié des éléments totaux pour déterminer si la densité est faible. */ if (compteur > ((l * c) / 2)) { printf("La matrice donnée est une matrice creuse.\n"); } else { printf("La matrice donnée n'est pas une matrice creuse.\n"); } printf("Il y a %d nombres de zéros dans la matrice.", compteur); return 0; }
170. Ecrivez un programme en C pour accepter deux matrices et vérifier si elles sont égales.
Exemple de sortie:
Entrer le nombre de lignes et colonnes de la 1ère matrice: 2 2 Entrer le nombre de lignes et colonnes de la 2ème matrice: 2 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] : 1 matriceB[0][1] : 2 matriceB[1][0] : 3 matriceB[1][1] : 4 La première matrice est: 1 2 3 4 La deuxième matrice est: 1 2 3 4 Les matrices peuvent être comparées. Les deux matrices sont égales.
#include <stdio.h> #include <stdlib.h> int main() { int matriceA[50][50], matriceB[50][50]; int i, j, l1, c1, l2, c2, equal = 1; printf("Entrer le nombre de lignes et colonnes de la 1ère matrice:"); scanf("%d %d", &l1, &c1); printf("Entrer le nombre de lignes et colonnes de la 2ème matrice:"); scanf("%d %d", &l2, &c2); printf("Entrer les éléments de la première matrice:\n"); for(i = 0; i < l1; i++) { for(j = 0; j < c1; 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 < l2; i++) { for(j = 0; j < c2; j++) { printf("matriceB[%d][%d] : ", i, j); scanf("%d", &matriceB[i][j]); } } printf("La première matrice est: \n"); for(i = 0; i < l1; i++) { for(j = 0; j < c1; j++) { printf("% 4d", matriceA[i][j]); } printf("\n"); } printf("La deuxième matrice est: \n"); for(i = 0; i < l2; i++) { for(j = 0; j < c2; j++) { printf("% 4d", matriceB[i][j]); } printf("\n"); } // Comparer l'égalité de deux matrices if(l1 == l2 && c1 == c2) { printf("Les matrices peuvent être comparées.\n"); for(i = 0; i < l1; i++) { for(j = 0; j < c2; j++) { if(matriceA[i][j] != matriceB[i][j]) { equal = 0; break; } } } } else { printf("Les matrices ne peuvent pas être comparées.\n"); exit(1); } // Afficher si les matrices sont égales ou non if(equal == 1) printf("Les deux matrices sont égales."); else printf("Les deux matrices ne sont pas égales."); return 0; }