博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
循环移位
阅读量:6859 次
发布时间:2019-06-26

本文共 1026 字,大约阅读时间需要 3 分钟。

对于渣渣来说,什么都是值得思考的。

循环移位,

有n个整数,使前面各数顺序向后移动k个位置,移出的数再从开头移入。

 

题目就是把n个数围成一个环,分别把数往后移k个位置。

 

代码实现:for (i=0; i<n; i++)

        b[(i+k)%n] = a[i];

 

当然解法不止一种,个人认为这种思维才是程序员的思维。(本人也在锻炼中。。

上题目:

 

循环移动(指针专题)

时间限制: 1 Sec  内存限制: 128 MB

提交: 258  解决: 145
[][]

题目描述

 

有n个整数,使前面各数顺序向后移动k个位置,移出的数再从开头移入。输出移动后的数组元素。

题目没有告诉你n的范围,希望你读入n之后用malloc()函数动态申请内存空间,不要提前定义数组的大小。不要偷懒哦。
另外要求定义并使用函数ringShift()
void ringShift(int *a, int n, int k)
{
//循环移动后的数值仍然存入数组a中
}

 

输入

 

输入分3行,第一行是一个整数n,第二行是n个整数,用空格隔开。第三行是一个整数k。

 

输出

 

输出n个整数,由空格隔开。输出占一行。

 

样例输入

 

61 2 3 4 5 62

 

样例输出

 

5 6 1 2 3 4 AC代码
1 #include
2 #include
3 4 void ringShift(int *a, int n, int k); 5 6 int main() 7 { 8 int i, k, n; 9 10 scanf("%d", &n);11 int *a = (int *) malloc (n * sizeof(int));12 13 for(i = 0; i < n; i++)14 scanf("%d", &a[i]);15 16 scanf("%d", &k);17 18 ringShift(a, n, k);19 20 return 0;21 }22 23 void ringShift(int *a, int n, int k)24 {25 int i;26 int *b = (int *) malloc (n * sizeof(int));27 28 for (i=0; i

 

转载于:https://www.cnblogs.com/Tinamei/p/4380936.html

你可能感兴趣的文章
CentOS 6.9使用iptables搭建网关服务器(转)
查看>>
MySQL学习笔记(二)
查看>>
Kafka的生产者和消费者代码解析
查看>>
Intellij Idea编译项目下的.java文件时的编码问题
查看>>
【深度学习系列】PaddlePaddle可视化之VisualDL
查看>>
[离散时间信号处理学习笔记] 11. 连续时间信号的采样与重构
查看>>
python os.system()和os.popen()
查看>>
Tensorflow1.4 高级接口使用(estimator, data, keras, layers)
查看>>
Unix环境高级编程(四)数据系统文件和信息
查看>>
孟晓阳:IT运行监控系统设计与使用心得
查看>>
Navicat Premium 12.0.18安装与激活(转)
查看>>
Chart:Amcharts
查看>>
查看mysql服务器连接
查看>>
jquery是什么
查看>>
Yii之路(第八)
查看>>
[UWP小白日记-2]SQLite数据库DOME
查看>>
spring + Mybatis + pageHelper + druid 整合源码分享
查看>>
乐观锁 与 悲观锁 来解决数据库并发问题
查看>>
java.sql.SQLException: Field 'id' doesn't have a default value解决方案
查看>>
设置更改root密码 连接mysql mysql常用命令
查看>>