让数组的左右两端依次交换,实现数组的逆序。
这里用了两种不同的方法,但是他们的思路是一样的。
代码实现:void print(int* x, int n) { for (int i = 0; i < n; i++) { printf("%d ", x[i]); } } void reverse(int x[], int n) { int tmp, i, j, mid; mid = (n - 1) / 2; for (i=0; i <= mid; i++) { j = n - 1 - i; tmp = x[i]; x[i] = x[j]; x[j] = tmp; } } void reverse(int* x, int n) { int* p, tmp, * i, * j, mid; mid = (n - 1) / 2; i = x; j = x - 1 + n; p = x + mid; for (; i <= p; i++, j--) { tmp = *i; *i = *j; *j = tmp; } } void main() { int a[10] = { 2,3,9,6,8,7,4,5,1,10 }; reverse(a, 10); print(a, 10); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)