部分逆置 pta c语言:
#include <stdio.h>void reverse(int arr[], int start, int end) {while (start < end) {int temp = arr[start];arr[start] = arr[end];arr[end] = temp;start++;end--;}
}int main() {int n, m;scanf("%d%d", &n, &m);int arr[n];for (int i = 0; i < n; i++) {scanf("%d", &arr[i]);}reverse(arr, 0, m - 1);reverse(arr, m, n - 1);reverse(arr, 0, n - 1);for (int i = 0; i < n; i++) {printf("%d", arr[i]);if (i != n - 1) {printf(" ");}}return 0;
}
该程序读入一个数组和一个数字m,将数组的前m个元素逆置,后n-m个元素逆置,最后整个数组逆置并输出。
例如,输入:
6 3
1 2 3 4 5 6
输出:
4 5 6 1 2 3