解题思路:在向后移动的过程中,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语言程序设计教程(第三版)课后习题12.5 (C语言代码)浏览:830 |
字符逆序 (C语言代码)浏览:646 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:679 |
1012题解浏览:870 |
sizeof的大作用 (C语言代码)浏览:1028 |
C二级辅导-同因查找 (C语言代码)浏览:568 |
淘淘的名单 (C语言代码)浏览:1229 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:686 |
A+B for Input-Output Practice (II) (C语言代码)浏览:601 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1200 |