PTA-数组元素循环右移问题(C语言)

在这里插入图片描述
输出格式:
在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。

输入样例:
6 2
1 2 3 4 5 6

输出样例:
5 6 1 2 3 4
做这个题我觉得还是抠字眼三个字比较重要,比如说不许另加数组,但是可以把一个数组做的空间大一些就可以简单转移了;0<=M<=100,N>=0,注意N有可能大于M;另外感觉多多练习用处很大,类似的题目又很容易解决了,继续补充能量;

#include <stdio.h>
int main(){
	int n,num,t;
	scanf("%d %d",&n,&num);
	num=num%n;
	int mov[n+num]; 
	for(int i=0;i<n;i++){
		scanf("%d",&mov[i]);
	}
    for(int i=n-1;i>=0;i--){
    	mov[i+num]=mov[i];
	}

	for(int j=n;j<=n+num-1;j++){
		t=mov[j];
		mov[j]=mov[j-n];
		mov[j-n]=t;
	}
	printf("%d",mov[0]);
	for(int i=1;i<n;i++)  printf(" %d",mov[i]);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40636998/article/details/83959750