循环移动

来源:互联网 发布:南京三宝科技 知乎 编辑:程序博客网 时间:2024/05/18 02:54


【描述】

给定一组整数,用数组保存整数,实现对数组中的数循环移动。假定共有n个整数,则要使前面各数顺序向后移m个位置,并使最后m个数变为最前面的m个数。

注意,不要用先输出后m个数,再输出前n-m个数的方法实现,也不要用两个数组的方式实现。

要求只用一个数组的方式实现,一定要保证在输出结果时,输出的顺序和数组中数的顺序是一致的。

【输入】

第一行包含一个正整数nn100)和一个正整数mmn),nm以空格间隔。

第二行包含n个正整数,整数以空格间隔。

【输出】

依次输出经过循环移动后数组中元素值,元素值以空格间隔。

【输入示例】

11 4

15 3 7667 84 87 13 67 45 34 45

【输出示例】

67 45 3445 15 3 76 67 84 87 13 

C代码】

---------------

#include<stdio.h>

#defineARRAY_SIZE 100

intmain(void) {

   int i, j, n, m, temp;

    int array[ARRAY_SIZE];

   scanf("%d%d", &n, &m);

   for(i = 0; i < n; ++i)

       scanf("%d", &array[i]);

   for(i = 1; i <= m; ++i) {

       temp = array[n - 1];

       for(j = 1; j < n; ++j) {

           array[n - j] = array[n - j - 1];

       }

       array[0] = temp;

   }

   for(i = 0; i < n; ++i)

       printf("%d ", array[i]);

   return 0;

}

0 0