设有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个数。】
方法二:将数组元素整体后移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
文章图片
方法三:使用递归函数进行移位
#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
版权声明:本文为博主原创文章,转载请附上博文链接!
文章图片
推荐阅读
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- 一个人的碎碎念
- 猎杀IP
- 七年之痒之后
- 我从来不做坏事
- 喂,你结婚我给你随了个红包
- 异地恋中,逐渐适应一个人到底意味着什么()
- 开花店的前景怎么样()