1008 数组元素循环右移问题:
问题描述
输入样例:
6 2
1 2 3 4 5 6
输出样例:
5 6 1 2 3 4
解决方案:
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(){int n,k,flag,y,x,final;int a[10000];memset(a,-1,sizeof(a));scanf("%d %d",&n,&k);k=k%n;for(int i=0;i<n;i++){scanf("%d",&a[i]);}y=n;for(int i=0;i<n;i++){a[y-1+k]=a[y-1];y--;}//数组后移y=n;x=k;for(int i=n+k-1;i>=n;i--){a[x-1]=a[i];x--;}//将数组外的数字覆盖到前面(56到12)for(final=0;final<n-1;final++){printf("%d ",a[final]);}printf("%d",a[final]);return 0;
}
收获:
这个题好像很简单,但是我做的没那么简单,谨记