码迷,mamicode.com
首页 > 其他好文 > 详细

有n个整数,使前面各数向后移m个位置,最后m个数变成最前面m个数

时间:2015-08-28 00:56:41      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:c++   指针   

有n个整数,使前面各数向后移m个位置,最后m个数变成最前面m个数。写一函数实现以上功能,在主函数中输入n个整数,并输出调整后的n个数(要求使用指针)。


#include<iostream>
//#include<vector>
using namespace std;


int n,m;
int array[1000];


void input()
{
cout<<"请输入n的值:"<<endl;
cin>>n;
cout<<"请输入m的值(m小于n):"<<endl;
cin>>m;
cout<<"请输入"<<n<<"个数"<<endl;



for(int i=0;i<n;i++)
{
cin>>array[i];
}
}


void chuli(int a)
{
int *p;
p=array;
 for(int i=a-m;i<a;i++)       //若以m个数为一组,那么这个循环可以完成一组都往前移一位
 {
   int t;
   t=*(p+i);
   *(p+i)=*(p+i-1);
   *(p+i-1)=t;
 } 
 a=a-1;      
 if(a-m>0)
 {
 chuli(a);    //递归,再往前移
 }
}


void output()
{
for(int i=0;i<n;i++)
{
cout<<array[i]<<" ";
}
}


int main()
{
input();
chuli(n);
output();
return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

有n个整数,使前面各数向后移m个位置,最后m个数变成最前面m个数

标签:c++   指针   

原文地址:http://blog.csdn.net/yanglize/article/details/48037539

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!