对于这类问题的解题思路是以中间的元素为中心,将其两侧对称的元素的值互换。
直接上代码:
#include <stdio.h>
#include <string.h>
//定义change函数
void change(int a[], int n) //a[]表示a数组的首地址,也可写成*a
{
int i, j, temp;
for (i=0,j=n-1; i<n/2; i++,j--)
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
int main()
{
int array[10] = {36,75,51,8,41,45,3,85,99,68};
int k;
printf("改变之前的数组:\n");
for (k=0; k<10; k++)
{
printf("%d\t", array[k]);
}
change(array, 10); //array表示数组名,代表着数组的首地址,也可写成&array[0]
printf("改变之后的数组:\n");
for (k=0; k<10; k++)
{
printf("%d\t", array[k]);
}
return 0;
}
vs2010运行结果: