主体代码如下:
- #include<stdio.h>
- void exchange(int* x, int n);
- int main()
- {
- int i, n, * p;
- int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
- for (i = 0; i < 10; i++)
- printf("%-3d", a[i]);
- p = a;
- printf("\n");
- printf("enter your wishing number:\n");
- scanf_s("%d", &n);
- exchange(p, n);
- for (p=a;p<a+10;p++)
- printf("%-3d", *p);
- return 0;
- }
函数代码如下:
- void exchange(int* x, int n)
- {
- int* i, * j, temp;
- /*
- 替换的下标为a[0]与a[n-1];a[1]和a[n-2];
- 设首地址为x,则左边为a[x]依次加1,右边为a[x+n-1]依次-1;
- 直到前面的下标大于等于后面,循环结束。
- */
- for (i = x, j = x + n - 1;i<j; i++, j--)
- {
- temp = *i;
- *i = *j;
- *j = temp;
- }
-
- }
结果如下:
