//1.第一个(两个其实差不多,只不过我比较喜欢用后者)
#include <stdio.h>
void move(int *a,int n)//指针a接收数组首元素的地址
{
int i,j,X;
int *p=a;//指针p也指向a数组
for(i=0;i<3;i++)
{
X=*a;//*a代表数组的第一个元素
for(j=1;j<n;j++)
{
*(p+j-1)=*(p+j);
}
*(p+j-1)=X;
}
}
int main (void)
{ int a[8]={3,2,5,8,4,7,6,9};
int i;
move(a,8);
for(i=0;i<8;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
//第二个
#include <stdio.h>
void move(int *a,int n)//指针a接收数组首元素的地址
{
int i,j,X;
for(i=0;i<3;i++)
{
X=a[0];
for(j=1;j<n;j++)
{
a[j-1]=a[j];
}
a[j-1]=X;
}
}
int main (void)
{ int a[8]={3,2,5,8,4,7,6,9};
int i;
move(a,8);
for(i=0;i<8;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}