将一个数组中的值按逆序重新存放,数组元素初始化方式赋值。

2024-11-08 17:06:07
推荐回答(1个)
回答1:

#include
int main()
{
int inv(int *x,int n);
int a[10]={8,6,5,4,1,15,-3,9,10,-2};
int *p;
printf("原先数组为:\n");
for(p=a;p printf("%3d",*p);
printf("\n");
p=a;//经过一个for的循环后,p已不指向最先的&a[0]了,指向&a[10],而&[10](出界)值不明,为此让它继续指向&a[0]
inv(p,10);//调用反序函数,共5个元素
printf("反序数组为:\n");
for(;p printf("%3d",*p);
printf("\n");
}int inv(int *x,int n)//反序函数
{
int *i,*j,m=(n-1)/2,*p,temp;
i=x;j=x+n-1;p=x+m;
for(;i<=p;i++,j--)//i和j的指针同步相向移动,实现数组元素的对换
{
temp=*i;
*i=*j;
*j=temp;
}
return(0);
}