#include <stdio.h>
#include <stdlib.h>
/*
**数组中有N个元素,要移动K个位置,那么数组的大小最小是N+K
**宏定义N与K
*/
#define N 3 //存储的数据
#define K 2 //移动的位置
#define MAXSIZE (N + K)
void EnterIntegers(int *p);
void Move_k_Position(int *p);
void ShowArray(int *p);
int main()
{
int A[MAXSIZE];
//输入N个整数
EnterIntegers(A);
//移动K个位置
Move_k_Position(A);
//显示数组元素
ShowArray(A);
}
//输入N个整数
void EnterIntegers(int *p)
{
int i = 0;
printf("Enter N integers.\n");
for (i = 0; i < N; i++)
{
scanf("%d", p + i);
printf("%d\n", *(p + i));
}
}
//移动K个位置
void Move_k_Position(int *p)
{
int i = 0;
p = p + N -1;
//从头部开始,每个元素都往后移动K个位置
for (i = N - 1 ; i >= 0; i--)
{
*(p + K) = *p;
*p = -1;//移动后将数据域清零
p--;
}
//输出数组中的数据域中的内容
}
//显示数组元素
//空出来的位置以-1标记
void ShowArray(int *p)
{
int i = 0;
for (i = 0; i < N + K; i++)
{
printf("%d\n", p[i]);
}
}