uq_20099990464


私信TA

用户名:uq_20099990464

访问量:157

签 名:

等  级
排  名 15330
经  验 798
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:在向后移动的过程中,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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区