算法1:
将a[0]与a[n-1]对换,
将a[1]与a[n-2]对换
......
将a[int(n-1)/2]与a[(n-1)-int((n-1)/2)] 对换
数组法: 数组做为参数
#include <stdio.h>
int main()
{
int a[6]={1,2,3,4,5,6};
int i;
printf("The originally is:\n");
for(i=0;i<6;i++)
{
printf("%d ",a[i]);
}
printf("\n");
change(a,6);
printf("The arrary has been changed:\n");
for(i=0;i<6;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
change(int arr[], int n)
{
int temp,i,j,m=(n-1)/2;
for(i=0;i<=m;i++)
{
j=n-1-i;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
return;
}
指针法:指针做为参数
#include <stdio.h>
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int i;
printf("The originally is:\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\nafter changed:");
change(a,10);
printf("The originally is:\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
change(int *p, int t)
{
int temp,*i,*j,m=(t-1)/2;
i=p;
j=p+t-1;
for(;i<=p+m;i++)
{
temp = *i;
*i = *j;
*j = temp;
j--;
}
}