数组元素倒置
#include<stdio.h>
void inv(int a[],int n);
int main()
{
int i,a[10]={1,2,3,4,5,6,7,8,9,10};
printf(“The original array:\n”);
for(i=0;i<10;i++)
printf(“a[%d]=%d\t”,i+1,a[i]);
printf("\n");
printf(“The array has been inverted:\n”);
inv(a,10);
for(i=0;i<10;i++)
printf(“a[%d]=%d\t”,i+1,a[i]);
printf("\n");
return 0;
}
void inv(int a[],int n)
{
int temp,i,m=(n-1)/2;
for(i=0;i<m;i++)
{
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}
}
将函数inv换成如下 ,运行速度会更快
void inv(int *x,int n)
{
int *p,temp,*j;
j=x+n-1;
p=x+(int)(n-1)/2;
for(;x<=p;x++,j--)
{
temp=*x;
*x=*j;
*j=temp;
}
}