1247 - C语言10.17
输入n个整数,使前面的n-m个数顺序向后移动m个位置,最后的m个数变成最前面的m个数。通过函数实现以上的功能。
Input
第一行包含两个用空格隔开的整数n和m,保证n>m且n不超过50。第二行包含n个用空格隔开的整数。
Output
输出进行题目描述操作之后的n个整数,每个整数之后输出一个空格。
请注意行尾输出换行。
Examples
Input
6 2 1 2 3 4 5 6
Output
5 6 1 2 3 4
Solution C
#include<stdio.h> int main() { int n,m,a[50],i; scanf("%d %d",&n,&m); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=n-m;i<n;i++) printf("%d ",a[i]); for(i=0;i<n-m;i++) printf("%d ",a[i]); printf("\n"); return 0; }
Solution C++
#include <stdio.h> int main() { void update(int x[], int n, int m); int a[50]; int n, m, i; scanf("%d %d", &n, &m); for (i = 0;i < n;i++) scanf("%d", &a[i]); update(a, n, m); for (i = 0;i < n;i++) printf("%d ", a[i]); printf("\n"); return 0; } void update(int x[], int n, int m) { int tmp[50]; int i; for (i = 0;i < n;i++) tmp[i] = x[i]; for (i = n - m - 1;i >= 0;i--) x[i + m] = x[i]; for (i = 0;i < m;i++) x[i] = tmp[i + (n - m)]; }