diff --git a/examples/tri_selection/tri.c b/examples/tri_selection/tri.c
index 9e5811c5e8fbe7888b1e9f9254a5fc36c9f40fdc..1702ef6037dd38e890123b1632df1e22739700e1 100644
--- a/examples/tri_selection/tri.c
+++ b/examples/tri_selection/tri.c
@@ -15,6 +15,12 @@ void find_min(double tab[], int i0, int *ind, double *min) {
     }
 }
 
+void swap(double *a, double *b) {
+    double tmp = *a;
+    *a         = *b;
+    *b         = tmp;
+}
+
 int main() {
     srand(time(NULL));
     double tab[SIZE];
@@ -26,9 +32,7 @@ int main() {
         double min  = tab[i];
         int ind_min = i;
         find_min(tab, i, &ind_min, &min);
-        double tmp   = tab[i];
-        tab[i]       = min;
-        tab[ind_min] = tmp;
+        swap(&tab[i], &tab[ind_min]);
     }
 
     for (int i = 0; i < SIZE; ++i) {