Correction TD Programmation Structurée 1- L1 GE
Correction Travail Dirigé N° 4
Exercice 1 : Recherche d'un élément dans un tableau
Énoncé : Écrire un programme en C qui permet de rechercher un élément dans un
tableau unidimensionnel de 10 entiers.
Solution :
#include <stdio.h>
int main() {
int tableau[10], element, trouve = 0;
// Remplissage du tableau
printf("Entrez 10 entiers :\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &tableau[i]);
// Saisie de l'élément à rechercher
printf("Entrez l'élément à rechercher : ");
scanf("%d", &element);
// Recherche de l'élément
for (int i = 0; i < 10; i++) {
if (tableau[i] == element) {
printf("L'élément %d a été trouvé à l'indice %d.\n", element, i);
Mme. Imen AZZOUZ 1
Correction TD Programmation Structurée 1- L1 GE
trouve = 1;
break;
// Si l'élément n'est pas trouvé
if (!trouve) {
printf("L'élément %d n'a pas été trouvé dans le tableau.\n", element);
return 0;
Exercice 2 : Somme des éléments d'une matrice
Énoncé : Écrire un programme en C qui permet de remplir une matrice 2x2, puis d'afficher la
somme de tous les éléments de cette matrice.
Solution :
#include <stdio.h>
int main() {
int matrice[2][2], somme = 0;
// Remplissage de la matrice
printf("Entrez les éléments de la matrice 2x2 :\n");
for (int i = 0; i < 2; i++) {
Mme. Imen AZZOUZ 2
Correction TD Programmation Structurée 1- L1 GE
for (int j = 0; j < 2; j++) {
printf("M[%d][%d] : ", i, j);
scanf("%d", &matrice[i][j]);
somme += matrice[i][j]; // Ajout de l'élément à la somme
// Affichage de la somme des éléments
printf("La somme des éléments de la matrice est : %d\n", somme);
return 0;
Exercice 3 : Inversion d'un tableau
Énoncé : Écrire un programme en C qui permet d'inverser les éléments d'un tableau
unidimensionnel de 5 entiers.
Solution :
#include <stdio.h>
int main() {
int tableau[5], temp;
// Remplissage du tableau
printf("Entrez 5 entiers :\n");
for (int i = 0; i < 5; i++) {
Mme. Imen AZZOUZ 3
Correction TD Programmation Structurée 1- L1 GE
scanf("%d", &tableau[i]);
// Inversion du tableau
for (int i = 0; i < 5 / 2; i++) {
temp = tableau[i];
tableau[i] = tableau[5 - 1 - i];
tableau[5 - 1 - i] = temp;
// Affichage du tableau inversé
printf("Le tableau inversé est : ");
for (int i = 0; i < 5; i++) {
printf("%d ", tableau[i]);
printf("\n");
return 0;
Exercice 4 : Maximum d'un tableau
Énoncé : Écrire un programme en C qui trouve et affiche le plus grand élément dans un
tableau.
Mme. Imen AZZOUZ 4
Correction TD Programmation Structurée 1- L1 GE
Solution :
#include <stdio.h>
int main() {
int tableau[5], max, i;
// Remplissage du tableau
printf("Entrez 5 entiers : \n");
for (i = 0; i < 5; i++) {
scanf("%d", &tableau[i]);
// Initialisation du maximum au premier élément du tableau
max = tableau[0];
// Recherche du maximum
for (i = 1; i < 5; i++) {
if (tableau[i] > max) {
max = tableau[i];
printf("Le maximum du tableau est : %d\n", max);
return 0;}
Mme. Imen AZZOUZ 5
Correction TD Programmation Structurée 1- L1 GE
Exercice 5 : Tri d'un tableau (Tri par sélection)
Énoncé : Écrire un programme en C qui trie les éléments d'un tableau d'entiers dans l'ordre
croissant.
Correction :
#include <stdio.h>
int main() {
int tableau[5], i, j, min, temp;
// Remplissage du tableau
printf("Entrez 5 entiers : \n");
for (i = 0; i < 5; i++) {
scanf("%d", &tableau[i]);
// Tri par sélection
for (i = 0; i < 4; i++) {
min = i;
for (j = i + 1; j < 5; j++) {
if (tableau[j] < tableau[min]) {
min = j;
// Échange des éléments
if (min != i) {
temp = tableau[i];
tableau[i] = tableau[min];
Mme. Imen AZZOUZ 6
Correction TD Programmation Structurée 1- L1 GE
tableau[min] = temp;
// Affichage du tableau trié
printf("Tableau trié : ");
for (i = 0; i < 5; i++) {
printf("%d ", tableau[i]);
printf("\n");
return 0;
Exercice 6 : Comptage des éléments pairs et impairs d'un tableau
Énoncé : Écrire un programme en C qui compte le nombre d'éléments pairs et impairs dans
un tableau d'entiers.
Correction :
#include <stdio.h>
int main() {
int tableau[5], i, pairs = 0, impairs = 0;
// Remplissage du tableau
printf("Entrez 5 entiers : \n");
for (i = 0; i < 5; i++) {
scanf("%d", &tableau[i]);
Mme. Imen AZZOUZ 7
Correction TD Programmation Structurée 1- L1 GE
// Comptage des éléments pairs et impairs
for (i = 0; i < 5; i++) {
if (tableau[i] % 2 == 0) {
pairs++;
} else {
impairs++;
printf("Nombre de nombres pairs : %d\n", pairs);
printf("Nombre de nombres impairs : %d\n", impairs);
return 0;
Exercice 7 : Somme des diagonales d'une matrice
Énoncé : Écrire un programme en C qui calcule la somme des éléments de la diagonale
principale et de la diagonale secondaire d'une matrice carrée de taille 3x3.
Correction :
#include <stdio.h>
int main() {
int matrice[3][3], i, sommeDiagPrincipale = 0, sommeDiagSecondaire = 0;
Mme. Imen AZZOUZ 8
Correction TD Programmation Structurée 1- L1 GE
// Remplissage de la matrice
printf("Entrez les éléments de la matrice 3x3 : \n");
for (i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
scanf("%d", &matrice[i][j]);
// Calcul des sommes des diagonales
for (i = 0; i < 3; i++) {
sommeDiagPrincipale += matrice[i][i];
sommeDiagSecondaire += matrice[i][2 - i];
printf("Somme de la diagonale principale : %d\n", sommeDiagPrincipale);
printf("Somme de la diagonale secondaire : %d\n", sommeDiagSecondaire);
return 0;
Mme. Imen AZZOUZ 9