C语言-数组中的整数向右移,末尾的相应提前.

题目

一个数组A中有N个元素,在不允许使用另外数组的前提下,将每个整数循环向右移M个位置,最后M个数循环至最前面的M个位置。

  • 第一次尝试2ab49fe4a48a468ab94d4139e058f20c.jpg

     

    倒腾了很久,把自己也绕进去了。修改了很多次,样例输出的结果对是对了。但是,经过一位好心学长的提醒,才发现我忽略了M>N这种情况。(估计没人看得下去我的代码😂)

  • 第二次尝试fa3995aae5cc4866b6cb60aa0b43557c.jpg

    然后换了一种方法做,想着另外找个东西将数组a中的数据存储下来(也许叫备份?我也不清楚),我还在csdn上提问过因为我想到了用数组b来备份,结果输出结果怎么也不对。后来检查才发现,输入时M.N的位置写反了,输出条件也有一丢丢小错误。当一股成就感扑面而来时,我又看了看题目。“在不允许使用另外数组的前提下”!我无了。瞬间跌入谷底。但是不得不说a[(i+M)%N]=b[i]这种思路真的很妙。

     

  • 第三次尝试411edc1231de46d79c32d73ba7ae8e67.jpg

     我不太清楚这里的y应该叫做什么?中间量?备注?or其他?大概思路就是a[N-1]中的元素赋值给y,然后从a[N-2]依次向右移一位,再将y的值赋给a[0],此为一次后移。继续循环,直至移至M次结束。over.运行无错误.

  • 谈谈给我的感想吧。第一次呢,做是好像做出来了,但是考虑不太全面;第二次呢,犯了些细节错误但是做出来了,但但是审题不清,没看到不能再用一个数组;第三次呢,思路有了,但是脑袋有点转不过弯,毕竟这个题绕了一两个小时,做了几十分钟才写出来。幸好,对了。虽说这个做题途中的,心情是有过烦躁的,但是还好不像从前那样直接放弃转而搜答案,而是慢慢思考慢慢理顺,这也是很大的收获。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值