在有顺序的数列中插入一个元素后该数列仍然是有顺序的数组

/**

在有顺序的数组中插入一个元素后该数列仍然是有顺序的数组:

思路:先找到该元素的插入位置

插入数据时要先将数组中得元素后移,然后插入该元素

*/

#include <stdio.h>

#define  n 10

int main()

{

// 在有顺序的数列中插入一个元素后该数列仍然是有顺序的数列:

int a[n] = {-1, 3, 6, 9, 13, 22, 27, 32, 49};

int insertVal;

int insertLoc;

scanf("%d", &insertVal);

// 找到插入的数在数组中得位置

for (int i = 0; i<9; i++) {

if (insertVal>a[i] && insertVal<a[i+1]) { // 该元素在数列元素中

insertLoc = i+1;

// 插入到该位置,(需要将该位置后面的值后置,然后插入该值)

for (int j =n-1; j>i+1; j--) {

a[j] = a[j-1];

}

a[i+1] =insertVal;

}else if (insertVal < a[n-10]){ // 该元素在第一位置

insertLoc = n-10;

for (int j = n-1; j>0; j--) {

a[j] = a[j-1];

}

a[0] = insertVal;

}else if (insertVal > a[n-2]){ // 该元素在最后面

insertLoc = n-1;

a[n-1] = insertVal;

}

}

// 输出

for (int i = 0; i <n; i++) {

printf("%d ", a[i]);

}

printf("\n");

return 0;

}

时间: 2024-08-12 09:36:00

在有顺序的数列中插入一个元素后该数列仍然是有顺序的数组的相关文章

在顺序表中插入一个元素

之前在创建了一个顺序表的功能函数,这个没有疑问,测试没有错误,但是在接下来的做插入功能的时候发现插入的时候用模块写,不调用这个创建的函数,很难做到这个.该怎么实现这个"高内聚,低耦合"的原则. #include <stdlib.h> #include "Orderfist.h" status InsertList_Sq( SqList L[] ) /* 在链表插入一个元素 */ { UINT32 Insert_position = 0U, Insert_

往一个已知数组中插入一个元素

package ch07; import java.util.Arrays; /** * Created by liwenj on 2017/7/19. */public class test2 { public static void main(String[] args) { char[] a = new char[]{'b', 'c', 'e', 'f', 'g'};// Arrays.sort(a);// System.out.println(a);u char d = 'd'; cha

31.向数组中插入一个元素

import java.util.*; public class Insert { public static void main(String[] args) { int[] list = new int[6]; // 长度为为6的数组 list[0] = 99; list[1] = 85; list[2] = 82; list[3] = 63; list[4] = 60; int index = list.length; // 保存新增成绩插入位置 System.out.println("请

链表中插入一个节点的三种情况

在链表中插入一个元素可以分为三种情况: 1.在节点的时候 2.在链表中间的任意位置 3.在链表的最后位置,也可以认为这种情况为追加(这个就留到追加的时候来实现) 下面是代码的实现 SN *Insert_S_Node( SN *head ) /* 传入的参数是被插入链表中的头指针 */ { SN *Insert_Node=NULL, *Dest_Node = NULL; /* Insert_Node是将要做成的新链表中的节点 Dest_Node是要插入的节点*/ INT32 OSM = 1, i3

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

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

向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE(&#39;{0}&#39;,&#39;YYYY-MM-DD&#39;))

需要指出的是,C#中有datetime类型,但是这个类型是包括小时,分钟,秒的.这个格式与数据库中的Date类型不符,如果将now设为datetime类型插入数据会失败. 需要通过TO_DATE('字段','YYYY-MM-DD'))转换.如下: string.Format("insert into tablename (TIME) values(TO_DATE('{0}','YYYY-MM-DD'))",now) 错误写法: string.Format("insert in

在一组降序排列的数组中插入一个数据,插入后,数组中数据依然按降序排列

分析: 1.数组固定,是一个倒序的数组 2.插入一个数据,这个数据插在哪呢,要比较,与数组中所有的元素比较,这里需要一个循环,因为是降序的数组,所以当第一次遇到比自己小的,那么这个位置就是要插入的位置 3.因为上一步被占了位置,那么从这个插入的数据开始,后面的原本的数据都得向右移一位 /** * */ package com.cn.u4; import java.util.Scanner; /** * @author Administrator *向有序数组中插入学员成绩 * 在一组降序排列的数

在PE文件中插入一个新节

这篇文章写如何在exe文件中插入一个新节,并且让它还能继续运行.这个节里保存的是导入表信息,指向一个自己写的动态库.在PE头中修改导入表地址位自己新构建的导入表. 能够实现这些需要对PE文件结构有着熟悉的掌握,可参考<Windows PE权威指南>.当初我看这本书的时候觉得很枯燥,结构信息不太好记.但是经过这个项目和一个自己实现LoadLibrary函数的项目后对PE文件结构就有了较熟悉的掌握. 首先,通过内存映射将目标EXE文件映射到内存中,保存原始结构,然后将原来的PE头部写入新文件. 之

在数组中添加一个元素进行(替换 删除 插入)

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //可变数组继承不可变数组 //1.创建  设定元素个数进行创建 NSMutableArray *mutArr=[NSMutableArray arrayWithCapacity:7]; //2.向数组中添加一个元素 NSArray *[email protected][@"MON",@