关于固定长度数组中以元素为单位进行的移位操作

例如,数组: int array[5] = {1,2,3,4,5};整体往后循环移1个单元的元素。

最开始代码如下。

/**
**  @author:hushunfeng
**
*/
#include<stdio.h>

void main() {
    int array[5] = {1,2,3,4,5};
    int i;
    for(i = 0; i < 5 ; i++) {
        array[i+1] = array[i];
    }
    for(i=0;i<5;i++) {
        printf("%d\n",array[i]);
    }

}

结果:1 1 1 1 1

一开始将1移到下一位后,下一位内的内容已经变成1,那么再往下移,就会连续输出1

改进后的初步代码

/**
**  @author:hushunfeng
**
*/
#include<stdio.h>

void main() {
    int array[5] = {1,2,3,4,5};
    int i;
    for(i = 3; i >=-1 ; i--) {
        if(i==-1)
            array[i+1] = array[i+5];
        else
            array[i+1] = array[i];
    }
    for(i=0;i<5;i++) {
        printf("%d\n",array[i]);
    }

}

结果:4 1 2 3 4  最后一位还存在问题 说明没有达到循环的效果。

正确代码:

*/

/**
**  @author:hushunfeng
**
*/
#include<stdio.h>

void main() {
    int array[5] = {1,2,3,4,5};
    int temp;

    int index;
    int i;
    temp = array[4];

    for(index=3;index>=0;index--) {
        array[index+1] = array[index];
    }
    array[0] = temp;

    for(i=0;i<5;i++) {
        printf("%d\n",array[i]);
    }
}

结果: 5 1 2 3 4

如果要移动多位,那么可以重复操作上述操作即可。

关于固定长度数组中以元素为单位进行的移位操作

时间: 2024-10-13 17:04:29

关于固定长度数组中以元素为单位进行的移位操作的相关文章

蓝牙通信中读取固定长度数组的解决

2014-05-05 18:10 今天主要忙于工作.之前遇到一个问题,今天得以解决. 问题的描叙:需要从输入流中读取固定长度的字节数组. 问题的解决:今天参考了网上的资料.解决了. 注释部分:之前是通过拷贝数组进行解决,但是难以解决. 解决的代码如下: public synchronized void run() { byte[] buffer = new byte[16]; int bytes = 0; while (mmInStream != null) { try { // 通过连接的端口

0131 JavaScript数组中新增元素:修改数组索引、修改 length 长度、数组翻转

? 数组中可以通过以下方式在数组的末尾插入新元素: 数组[ 数组.length ] = 新数据; 1.5.1 通过修改 length 长度新增数组元素 可以通过修改 length 长度来实现数组扩容的目的 length 属性是可读写的 var arr = ['red', 'green', 'blue', 'pink']; arr.length = 7; console.log(arr); console.log(arr[4]); // undefined console.log(arr[5]);

动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

 1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /************************************************************************/ /*数组的结构体类型                                                    */ /*******************

六道题 : 1.设计一个函数,用来计算b的n次方 2.(n! = 1*2*3*4*...n) 3.(1! + 2! + 3! + 4! + ... + n!) 4.成绩 5. 数组中的元素逆序存放 6.九九乘法口诀

/* 设计一个函数,用来计算b的n次方 递归的2个条件: 1.函数自己调用自己 2.必须有个明确的返回值 */ #include <stdio.h> int pow2(int b, int n); int main() { int c = pow2(3, 2); printf("%d\n", c); return 0; } /* pow2(b, 0) == 1 pow2(b, 1) == b == pow2(b, 0) * b pow2(b, 2) == b*b == po

移除数组中的元素

题目分析:移除数组中的元素可以分为两种情况, 1,不对原数组进行操作: 不对原数组进行操作的,可以新建一个数组,利用数组的栈方法 push,循环数组中的元素,把不等于特定元素的加入新数组. function remove(arr, item) {var res=[];for(var i=0;i<arr.length;i++){if(arr[i]==item){continue}else{res.push(arr[i]);}}return res; } 2,对原数组进行操作:可以利用数组的操作方法

面试题--&gt;写一个函数,返回一个数组中所有元素被第一个元素除的结果

1 package com.rui.test; 2 3 import java.util.Random; 4 5 /** 6 * @author poseidon 7 * @version 1.0 8 * @date:2015年10月25日 上午11:12:24 9 * @description: 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果 10 * 陷阱: 11 * 1.循环需要倒着写,为什么? 12 * 想想顺着写循环的结果,第一个元素的值会发生变化门后面再除就会有问

08.18 javascript 06 数组 数组的概念 创建数组 读取数组中的元素 稀疏数组 添加和删除数组的元素 数组遍历 多维数组 数组的方法 类数组对象 作为数组的字符串

# 数组 ### 数组的概念 * 数组是值的有序集合 * 数组中的每个值 称之为 元素 * 每个元素可以是任意数据类型的值 * 每个元素都有索引(下标) * 元素的索引从0开始,按照顺序递增. 元素最大的索引 2^32-2 ### 创建数组 * 直接量 `[]` * 构造函方式  `new Array()` ### 读写数组中的元素 * 数组名[索引] ### 稀疏数组 * js数组的索引是连续的 * 没有连续的给元素赋值 , 没有赋值的元素会自动赋值 undefined ### 添加和删除 数

[码海拾贝 之JS] JS 之删除数组中的元素

前言 在Java 中要从一个list 中删除一个元素, 直接使用 remove 方法就可以了. 在js 中的array 并没有 remove 方法, 但是在js 中array 有splice 方法可以达成相同的效果, 除此之外, 还可以使用其他方式来实现这个效果. 使用splice 方法实现从数组中删除元素 首先看一下 splice 方法如何使用. 语法 arrayObject.splice(index,howmany,item1,.....,itemX) 参数 描述 index 必需.整数,规

统计js数组中奇数元素的个数

如何统计一个JS数组中奇数元素的个数呢? 这是群友提出的一个问题,大部分群友给出的是遍历 然后对2取模,得到最终结果. 这样的写法是最容易想得到的,那么有没有其他思路呢? 这里我提供另外一种思路,我们知道奇数其实就是以 1 3 5 7 9 作为末尾结尾的数字,那么只要统计这些数字出现的次数就够了,但是光这样统计容易误算,所以我们可以先用逗号拼接起来,连着逗号一起计算,由于js没有php那么方便的能用substr_count 函数统计字符串出现次数,所以我们直接采用正则替换,计算长度差得到个数,代