题目描述

有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。
写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。

输入

输入数据的个数n n个整数 移动的位置m

输出

移动后的n个数

样例输入

10
1 2 3 4 5 6 7 8 9 10
2

样例输出

9 10 1 2 3 4 5 6 7 8 

来源/分类

C语言 

题目截图:

ACMNO.41C语言-数字调序 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数_C语言-数字调序


思路:

整体来说,进行二次输出就好。
第一次先输出挪到前面的数!
for(i=0;i<m;i++)
cout<<s[n-m+i]<<" ";
第二次再一次输出原数列的数。
for(i=0;i<n-m;i++)
{
cout<<s[i]<<" ";
}
不过,这两个for循环语句还是讲究的!

代码:

#include <iostream>
using namespace std;

int main()
{
int s[10000]={0};int n,m,i;
cin>>n;
for(i=0;i<n;i++)
{
cin>>s[i];
}
cin>>m;
for(i=0;i<m;i++)
cout<<s[n-m+i]<<" ";

for(i=0;i<n-m;i++)
{
cout<<s[i]<<" ";
}
}

代码截图:

ACMNO.41C语言-数字调序 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数_C语言-数字调序_02


代码执行截图:

ACMNO.41C语言-数字调序 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数_i++_03


OJ结果:

ACMNO.41C语言-数字调序 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数_i++_04