| 
            
            
             
              #include <stdio.h>
  void swap(int *a, int *b) {     int t = *a;     *a = *b;     *b = t; }
  void fun(int arr[], int n, int k) {     int i;     if (k >= n)     {         for (i = 0; i < n; i++)             printf("%d ", arr[i]);         putchar('\n');         return;     }          for (i = k; i < n; i++)     {         swap(&arr[k], &arr[i]);         fun(arr, n, k + 1);         swap(&arr[k], &arr[i]);     } }
  int main() {     int arr[] = {1, 2, 3, 4};     fun(arr, 4, 0);     return 0; }             
                       |