//有n个整数, 使前面各数顺序向后移m个位置, 最后m个数变成最前面m个数,
//写一函数实现以上功能, 在主函数中输人n个整数和输出调整后的n个数。
//
#include<stdio.h>
void move(int arry[], int n, int m)
{
int i, j;
for (i = 0; i < m; i++)//外层循环控制移动次数
{
int tmp = *(arry + n - (m - i));
for (j = n - (m - i); j > i; j--)
*(arry + j) = *(arry + j - 1); //核心
*(arry + i) = tmp;
}
}
int main()
{
int arry[20];
int* p_arry = arry;
int n, m;
printf("请输入n的大小,用于确定数字的大小:");
scanf("%d", &n);
printf("请输入m的大小,用于确定要移动末尾有多少数字:");
scanf("%d", &m);
printf("请输入%d个数,用于赋值到数组中:\n", n);
for (int i = 0; i < n; i++)
scanf("%d", p_arry + i);
move(arry, n, m);
printf("排完序的数组为:\n");
for (int i = 0; i < n; i++)
printf("%d ", *(p_arry + i));
return 0;
}
8.4 (important)
最新推荐文章于 2024-09-08 18:27:41 发布