有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前
m个数(如下图所示),写- -函数实现以上功能,在主函数中输入n个整数和输出调整后的n个整数。
#include<stdio.h>
int main()
{
void f(int *p,int x,int y);
int *a,m,n,i;
printf("请输入n和m\n");
scanf("%d %d",&n,&m);
int b[n];
printf("请输入n个整数\n");
for(i=0;i<n;i++)
{
scanf("%d",&b[i]);
}
a=&b[0];
f(a,n,m);
return 0;
}
void f (int *p,int x,int y) //x是n,y是m
{
//printf("已运行\n");
int j[x],i;
for(i=0;i<x-y;i++) //进行X-y次
{
j[y+i]=*p++;
}
for(i=0;i<y;i++) //进行y次循环
{
j[i]=*(p++); //p已经指向第x-y个数
}
printf("排序后的数为\n");
for(i=0;i<x;i++)
printf("%d ",j[i]);
}