用函数inv实现。实参用数组名a,形参可用数组名也可用指针变量名
#include<stdio.h>
int main(){
void inv(int x[],int n); //函数申明
int i,a[10] = {3,7,9,11,0,6,7,5,4,2};
printf("the orginal array:\n");
for(i = 0;i<10;i++)printf("%d ",a[i]);
printf("\n");
inv(a,10);
printf("the array has been inverted:\n");
for(i = 0;i<10;i++)printf("%d ",a[i]);
printf("\n");
return 0;
}
void inv(int x[],int n){
int temp,i,j,m =(n-1)/2;
for(i = 0;i<=m;i++){
j = n-1-i;
temp = x[i];
x[i] = x[j];
x[j] = temp;
}
return;
}
修改程序
#include<stdio.h>
int main(){
void inv(int *x,int n); //函数申明
int i,a[10] = {3,7,9,11,0,6,7,5,4,2};
printf("the orginal array:\n");
for(i = 0;i<10;i++)printf("%d ",a[i]);
printf("\n");
inv(a,10);
printf("the array has been inverted:\n");
for(i = 0;i<10;i++)printf("%d ",a[i]);
printf("\n");
return 0;
}
void inv(int *x,int n){
int temp,*p,*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;
}
return;
}