(1).
#include<stdio.h>
#include<stdlib.h>
void main()
{
void inv(int x[],int n);
int a[10]={22,33,44,55,34,66,77,65,12,3},i;
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
printf("\n");
inv(a,10);
for(i=0;i<10;i++)
printf("%2d",a[i]);
system("pause");
}
void inv(int x[],int n)
{
int temp,*i,*j;
i=x;
j=x+n-1;
for(;i<j;i++,j--)
{
temp=*i; *i=*j; *j=temp;
}
2.
#include<stdio.h>
#include<stdlib.h>
int main()
{
void inv(int *x,int n);
int a[10],i,*p=a; //若用指针变量做实参,必先使指针变量有确定的值,指向一个已定义的单元
for(;p<a+10;p++)
{
scanf_s("%d",p);
}
printf("\n");
p=a; //p经过循环输入已经指向数组的最后元素,所以调用函数时,应让他重新指向数组的首元素
inv(p,10);
for(p=a;p<a+10;p++)
printf("%2d",p);
printf("\n");
system("pause");
}
void inv(int *x,int n)
{
int *p,m,temp,*i,*j;
m=(n-1)/2;
i=x;
j=x+n-1;
p=x+m;
for(;i<=p;i++,j--)
{
temp=*i; *i=*j; *j=temp;
}
}