设有n个整数,现在要使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。

方法一:先将最后m个数保存在新的b数组中,然后将n-m个数拉至原数组a尾部,再将b数组依次赋值给a数组的前m个数。
#include #define N 80 int main(){ int a[N],b[N],i; int n,m; printf("input the n and m:\n"); scanf("%d %d",&n,&m); for(i=0; i=m; i--){ a[i]=a[i-m]; //将n-m个数拉至数组a的尾部 } for(i=0; i

设有n个整数,现在要使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。
文章图片



【设有n个整数,现在要使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。】

方法二:将数组元素整体后移m个位置,然后将尾部的m个元素移动到数组前m个位置。
#include main() { char a[100]; int i=0,c=0,j=0,m; printf("输入m:"); scanf("%d",&m); printf("输入整数:"); for (i=0; ; i++) { scanf("%d",&a[i]); c++; if (getchar()=='\n') break; } for (i=c-1; i>=0; i--) a[i+m]=a[i]; //所有元素后移m位 for (i=c; i

设有n个整数,现在要使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。
文章图片

方法三:使用递归函数进行移位
#include using namespace std; int main() { void move(int *array,int n,int m); //函数声明 int number[20]; //定义数组长度为20的数组 int i,n,m; cout<<"请输入要输入多少个数:"<>n; cout<>number[i]; } cout<>m; move(number,n,m); //函数调用 cout<array; p--)//从数组最后一个元素开始向前把前一个元素的值赋给后一个元素 { *p=*(p-1); } *array=array_end; //将array_end的值赋给第一个元素的值因为之前将最后一个元素的值赋给了array_end m--; // 通过m控制此函数执行几次从而后移几个数 if(m>0) { move(array,n,m); //递归调用,当循环次数m减至为0时,停止调用 } --------------------- 作者:宾宾琪琪 来源:CSDN 原文:https://blog.csdn.net/liubinzi123/article/details/8261555 版权声明:本文为博主原创文章,转载请附上博文链接!

设有n个整数,现在要使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。
文章图片

    推荐阅读