```c #include <stdio.h> #include <stdlib.h> // 交换两个元素 void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } // 对数组进行全排列 void permute(int arr[], int start, int end, int n) { if (start == end) { for (int i = 0; i < n; i++) { printf("%d", arr[i]); } printf("\n"); return; } for (int i = start; i <= end; i++) { swap(&arr[start], &arr[i]); permute(arr, start + 1, end, n); swap(&arr[start], &arr[i]); } } int main() { int n; scanf("%d", &n); int arr[n]; for (int i = 0; i < n; i++) { arr[i] = i + 1; } permute(arr, 0, n - 1, n); return 0; } ``` [2024-11-18 21:37:28 | AI写代码神器 | 275点数解答]