//C程序设计第四版(谭浩强)
//章节:第八章 善于利用指针
//题号:8.4
//题目:指针)有n个整数,使前面各数顺序向后移动m个位置,最后m个数最前面m个数
以5个数移动前两个数为例
#include<stdio.h>
void sort(int* p, int n, int w)//n为总共几位数,w为改变前几位
{
int* p1,*p2; int j, i;
p1 = p; p2 = p;
int temp;
int b[5];
for (i = 0; i < 5; i++)
b[i] = *(p1++);//一定要保留原地址地址复原
for (i = 0; i < w; i++)//把前面的数移动到后面
{
temp = *(p + i);
*(p + n - w + i) = temp;
}
for (i = 0; i < n - w; i++)//把后面的数移动到前面
{
*(p + i) = b[n -w- 1 + i];
}
}
int main()
{
int a[5], * p,i;
p = a;
for (i = 0; i < 5; i++)
scanf("%d", p++);//scanf对应地址
sort(a, 5, 2);
p = a;
for (i = 0; i < 5; i++)
printf("%d",*(p++));//printf 对应地址变量
return 0;
}
水平有限,如有错误,还望大神指正;(^_−)☆