解题思路:在向后移动的过程中,1到n-m为一个整体,可以直接向后移动m,且n-m正好移动到末尾(原来的n处);而从n-m+1开始到n,则会移动到开头(n-m+1为第一个数),举个例子
输入:
10
1 2 3 4 5 6 7 8 9 10
2
此时有n=10个整数,向后移动的位置m=2;1后移2到3的位置,2后移2到4的位置......8后移2到了10的位置(正好到末尾);
而从9(n-m+1)到10(n)会移动到开头第一位、第二位......;
所以调整后的顺序应当从9(n-m+1)到10(n)重新编号为1、2,然后从1到8(1到n-m)继续编号为3、4、5......10;即从9到10(n-m+1到n)开始输出,再回到开头从1输出到8(n-m)即可
参考代码:
#include
int main()
{
int m,n,a[100];//用数组a来储存n个整数,便于顺序输出
scanf("%d", &n);
for (int i = 1;i <= n;i++)
{
scanf("%d", &a[i]);//从下标为1开始储存
}
scanf("%d", &m);
for (int i = n-m + 1;i <= n;i++)从n-m+1到n输出
{
printf("%d ", a[i]);
}
for (int i = 1;i <= n - m;i++)从1到n-m输出
{
printf("%d ", a[i]);
}
return 0;
}
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:662 |
数列排序 (C语言代码)浏览:835 |
C语言程序设计教程(第三版)课后习题9.8 (Java代码)浏览:1641 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:456 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:1058 |
WU-链表数据求和操作 (C++代码)浏览:1316 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:326 |
简单的a+b (C语言代码)浏览:950 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:673 |
【计算球体积】 (C语言代码)浏览:1551 |