题:将数组中数反顺序存放(数组名版本)
#include <stdio.h>
void reverse(int x[ ],int n);
int main ()
{ int i,a[10]={0,5,9,8,5,4,7,4,6,5,1};
printf("the original arry:\n");
for(i=0;i<10;i++)
{ printf("%d",a[i]);
}
printf("\n");
reverse(a,10);
printf("the array has been inverted :\n");
for(i=0;i<10;i++)
{ printf("%d",a[i]);
}
}
void reverse(int x[],int n)
{
int temp,i,j,m;
m=(n-1)/2; // 多少次循环
for(i=0;i<=m;i++)
{
j=n-1-i;
temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
*****************************************
(指针版本)
#include <stdio.h>
void reverse(int *x,int n);
int main ()
{ int i,a[10]={0,5,9,8,5,4,7,4,6,5,1};
printf("the original arry:\n");
for(i=0;i<10;i++)
{ printf("%d",a[i]);
}
printf("\n");
reverse(a,10);
printf("the array has been inverted :\n");
for(i=0;i<10;i++)
{ printf("%d",a[i]);
}
}
void reverse(int *x,int n)
{
int *p,temp,*i,*j,m;
m=(n-1)/2; // 多少次循环
i=x;j=x+n-1;p=x+m;
for(;i<=p;i++,j--)
{
temp=*i;
*i=*j;
*j=temp;
}
}