#include <stdio.h> #include <stdlib.h> #define SIZE 17 void reverse(int start, int end); int data[SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}; int main(void) { int i = 5; reverse(0, i - 1); reverse(i, SIZE-1); reverse(0, SIZE-1); return 0; } void reverse(int start, int end) { int t, i, mid;; mid = (end - start) % 2 == 0 ? (end - start) / 2 : (end - start) / 2 +1; for(i = 0; i < mid; i ++){ t = data[i + start]; data[start + i] = data[end - i]; data[end - i] = t; } for(i = start; i <= end; i++) printf("%d ", data[i]); putchar('/n'); return; }