PTA数据结构数组循环左移
2018-02-03 19:32
274 查看
数组循环左移(20 分)
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(am⋯an−1a0a1⋯am−1)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:
输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。输出格式:
在一行中输出循环左移m位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。输入样例:
8 3 1 2 3 4 5 6 7 8
输出样例:
4 5 6 7 8 1 2 3
代码实现:
#include<stdio.h> #define N 100 int main() { int a ; int m,n,t; scanf("%d %d",&n,&m);//n个整数移动前m个 for(int i=0;i<n;i++) { scanf("%d",&a[i]); } //如果m>n if(m>n) { m=m%n; } //m>n且m是n的倍数 for(int i=0;i<m;i++) { t=a[m-i-1]; for(int j=m-i;j<n-i;j++) { a[j-1]=a[j]; } a[n-i-1]=t; } for(int i=0;i<n;i++) { if(i==0) { printf("%d",a[i]); } else { printf(" %d",a[i]); } } return 0; }
相关文章推荐
- 【C++数据结构】数组循环队列的实现
- 数据结构面试题总结8——数组:数组循环移位
- 数据结构-数组排序-二路归并-循环实现-C语言
- 数据结构(一) -- 循环队列数组实现
- pta 习题集 5-15 数组循环左移
- java实现数据结构-数组中按次数进行循环右移
- 数据结构 -- 队列 & 循环队列 -- 数组实现
- 数据结构之——基于数组实现的循环队列
- pta 习题集 5-15 数组循环左移
- 常用数据结构之基于数组的循环队列
- 数据结构之循环数组实现队列
- PTA 数组循环左移
- 数据结构循环队列——数组模拟实现
- 数据结构(java语言描述)-- 队列的循环数组实现
- PTA 5-15 数组循环左移 (20分)【List】
- 数据结构:队列(循环数组实现)
- 数据结构-循环数组实现队列
- PTA - 数组循环左移(18 分)
- 数据结构循环队列,数组实现,循环队列中如果不使用数据项计数字段items,而是通过front和rear计算队列是否为空或满或队列个数,那会很复杂
- 数据结构_树形数组