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

本文详细解析了如何实现整数序列的循环右移算法,通过抠字眼理解题目要求,利用数组空间进行简单数据转移,避免额外数组使用,强调了练习的重要性及类似问题的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
输出格式:
在一行中输出循环右移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;
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值