将数组元素从指定索引后移一个位置

 1 /*
 2     *******************************************************************************
 3     时间  :2014年9月20日 21:55:25
 4     程序名:MoveArr.c
 5     By    :xxNote
 6     作用  :把一个整数数组从指定的索引k开始向后移动1个单位,最后一个元素扔掉,索引为k的元素改成m
 7     *******************************************************************************
 8 */
 9 #include <stdio.h>
10 #define N 10
11
12 int iArr[N] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
13 void Move(int *iArr, int k, int m);//向后移动一个位置
14 void Show(void);//显示数组
15 int main(void)
16 {
17     printf("移动前数组是:\n");
18     Show();
19     Move(iArr, 5, -1);
20     printf("移动后数组是:\n");
21     Show();
22
23     return 0;
24 }
25
26 void Move(int *iArr, int k, int m)
27 {
28     int Current, tmp, i;
29
30     tmp = iArr[k];
31     for (i=k; i<N-1; i++)
32     {
33         Current        = tmp;
34         tmp            = iArr[i+1];
35         iArr[i+1]      = Current;
36     }
37     iArr[k] = m;
38
39     return;
40 }
41
42 void Show(void)
43 {
44     int i;
45
46     for (i=0; i<N; i++)
47     {
48         printf("%3d", iArr[i]);
49     }
50     printf("\n");
51     return;
52 }

运行效果:

时间: 2024-10-05 22:04:03

将数组元素从指定索引后移一个位置的相关文章

删除数组元素并重建索引的方法

我们在用unset($arr($k))来删除数组元素时,会发现被删除的值的索引空了,因为业务的需要,我们有时候需要保留索引 有以下两种方法: 方法一:array_values函数 $arr = array(1,2,3,4); unset($arr[1]); echo $array[1]; // error Undefined offset print_r($arr); // 输出如下 /** Array ( [0] => 1 [2] => 3 [3] => 4 ) **/ $arr =

通过数组元素的父子关系形成一个字典类型的树列表

# coding=utf-8'''通过父子key关系形成一个字典类型的列表'''deparetment = [{'id': '03F50D0FE48A4C77896411D007C72A5B', 'name': '2级部门', 'p_id': '8F0095616A17484DAD2C17925C04B78E'},               {'id': '07A592FE111E4B338AC967531AB99A7E', 'name': '4级部门', 'p_id': 'A54DF3E5E

1008. 数组元素循环右移问题 (20)

1008. 数组元素循环右移问题 (20) 一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1--AN-1)变换为(AN-M -- AN-1 A0 A1--AN-M-1)(最后M个数循环移至最前面的M个位置).如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 输入格式:每个输入包含一个测试用例,第1行输入N ( 1<=N<=100).M(M>=0):第2行输入N个整数,之间用空格

js删除数组元素中的指定值

js删除数组元素中的指定值:所谓删除数组元素中指定的值,就是删除具有指定的数组项,下面就通过实例代码代码介绍一下如何实现此功能.代码如下: var theArray=["蚂蚁部落",2,"青岛市南区","antzone","蚂蚁部落"]; for(var i=0;i<theArray.length;i++){ if(theArray[i]=="蚂蚁部落"){ theArray.splice(i,1);

【C语言】12-指向一维数组元素的指针

一.用指针指向一维数组的元素 1 // 定义一个int类型的数组 2 int a[2]; 3 4 // 定义一个int类型的指针 5 int *p; 6 7 // 让指针指向数组的第0个元素 8 p = &a[0]; 9 10 // 修改所指向元素的值 11 *p = 10; 12 13 // 打印第一个元素的值 14 printf("a[0] = %d", a[0]); 输出结果:,说明已经通过指针间接修改了数组元素的值,跟指向一个普通int类型变量是一样的. 由于数组名代表

学习笔记之12-指向一维数组元素的指针

一.用指针指向一维数组的元素 1 // 定义一个int类型的数组 2 int a[2]; 3 4 // 定义一个int类型的指针 5 int *p; 6 7 // 让指针指向数组的第0个元素 8 p = &a[0]; 9 10 // 修改所指向元素的值 11 *p = 10; 12 13 // 打印第一个元素的值 14 printf("a[0] = %d", a[0]); 输出结果:,说明已经通过指针间接修改了数组元素的值,跟指向一个普通int类型变量是一样的. 由于数组名代表

PAT自测_打印沙漏、素数对猜想、数组元素循环右移、数字加倍重排、机器洗牌

00-自测1. 打印沙漏(20) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号:各行符号中心对齐:相邻两行符号数差2:符号数先从大到小顺序递减到1,再从小到大顺序递增:首尾符号数相等. 给定任意N个符号,不一定能正好组成一个沙漏.要求打印出的沙漏能用掉尽可能多的符号. 输入格式: 输入在一行给出1个正整数N(<=1000)和一个符号,中间以空格分隔. 输出格式: 首先

【C语言】指向一维数组元素的指针

本文目录 一.用指针指向一维数组的元素 二.用指针遍历数组元素 三.指针与数组的总结 四.数组.指针与函数参数 前面我们已经学习了指针,如果指针存储了某个变量的地址,我们就可以说指针指向这个变量.数组及其数组元素都占有存储空间,都有自己的地址,因此指针变量可以指向整个数组,也可以指向数组元素. 回到顶部 一.用指针指向一维数组的元素 1 // 定义一个int类型的数组 2 int a[2]; 3 4 // 定义一个int类型的指针 5 int *p; 6 7 // 让指针指向数组的第0个元素 8

让无序数组元素进行排序,排序完后将排序后元素对应的原先元素的位置输出

题目: 让无序数组元素进行排序,排序完后将排序后元素对应的原先元素的位置输出 (1)方法1 方法1:先将数组元素原先的对应位置记录在另一个数组中       并在进行选择排序的过程中,交换数组元素的同时也交换对应位置数组中的对应元素值 /* 选择法排序 并在排序后的数组元素在原先数组的对应位置输出 方法1:先将数组元素原先的对应位置记录在另一个数组中 并在进行选择排序的过程中,交换数组元素的同时也交换对应位置数组中的对应元素值 */ #include <iostream> using name