主体代码如下:
#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;
}
}
结果如下: