#include #include // Fonction pour trier un tableau 1D void sort_1d(int* array, int length) { for (int i = 0; i < length - 1; i++) { for (int j = 0; j < length - i - 1; j++) { if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } } // Fonction pour calculer la somme d'un tableau 1D int sum_1d(int* array, int length) { int sum = 0; for (int i = 0; i < length; i++) { sum += array[i]; } return sum; } // Fonction pour trier un tableau 2D basé sur la somme des lignes void sort_2d(int** array, int rows, int cols) { // Trier chaque ligne individuellement for (int i = 0; i < rows; i++) { sort_1d(array[i], cols); } // Trier les lignes selon leur somme for (int i = 0; i < rows - 1; i++) { for (int j = 0; j < rows - i - 1; j++) { if (sum_1d(array[j], cols) > sum_1d(array[j + 1], cols)) { int* temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } } // Fonction pour afficher un tableau 2D void print_2d(int** array, int rows, int cols) { for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { printf("%d ", array[i][j]); } printf("\n"); } } int main() { // Exemple : Tableau 2D int rows = 3, cols = 3; int** array = (int**)malloc(rows * sizeof(int*)); for (int i = 0; i < rows; i++) { array[i] = (int*)malloc(cols * sizeof(int)); } // Initialiser le tableau (exemple donné) int data[3][3] = {{0, 3, 2}, {9, 4, 5}, {4, 1, 3}}; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { array[i][j] = data[i][j]; } } // Affichage du tableau original printf("Tableau original :\n"); print_2d(array, rows, cols); // Trier le tableau sort_2d(array, rows, cols); // Affichage du tableau trié printf("\nTableau trié :\n"); print_2d(array, rows, cols); // Libérer la mémoire for (int i = 0; i < rows; i++) { free(array[i]); } free(array); return 0; }