C语言数组任意位置插入一个元素方法

前言:

这篇文章我们来看看向C语言的数组中随机插入一个元素的方法。

如果是在python向列表中随机添加元素,我们往往使用insert()的方法。

l = ['Python', 'C++', 'Java']
#插入元素
l.insert(1, 'C')
print(l)

#插入元组,整个元祖被当成一个元素
t = ('C#', 'Go')
l.insert(2, t)
print(l)

#插入列表,整个列表被当成一个元素
l.insert(3, ['Ruby', 'SQL'])
print(l)

#插入字符串,整个字符串被当成一个元素
l.insert(0, "http://c.biancheng.net")
print(l)

insert()的第一个参数是位置,第二个参数就是插入的值。

我们仍然延续昨天的风格定义函数:

void insert_element(int arr[],int n) //n为数组的元素个数

函数的参数是数组名和数组长度,当然在我们定义的函数是需要包括我们所需插入的值和下标的。但是在覆盖数组元素时,我们应该从数组的末尾开始不断将数组向后移。

完整代码:

void insert_element(int arr[],int n) //n为数组的元素个数
{
    int pos;
    int insertion;

    printf("请输入你要插入的位置:");
    scanf("%d",&pos);
    printf("\n");

    printf("请输入你要插入的值:");
    scanf("%d",&insertion);
    printf("\n");

    for(int i = 0;i<n-1;i++)
    {
        if(pos-1==i)
        {
            for(int j = n-1;j>=pos;j--)
            {
                arr[j] = arr[j-1];
            }
            arr[i] = insertion;
        }
    }
}

C语言的数组始终是需要预先分配好其的长度,我们的函数功能就是向数组中插入一个元素。

下面就来看看在主函数中如何调用该函数:

int main()
{
    int arr_2[4]={1,4,5};
    insert_element(arr_2,4);
    for(int i=0;i<4;i++)
    {
        printf("%4d",arr_2[i]);
    }
    return 0;
}

运行结果:

到此这篇关于C语言数组任意位置插入一个元素方法的文章就介绍到这了,更多相关C语言数组任意位置插入一个元素内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C语言对数组元素进行冒泡排序的实现

    在实际开发中,有很多场景需要我们将数组元素按照从大到小(或者从小到大)的顺序排列,这样在查阅数据时会更加直观,例如: 一个保存了班级学号的数组,排序后更容易分区好学生和坏学生: 一个保存了商品单价的数组,排序后更容易看出它们的性价比. 对数组元素进行排序的方法有很多种,比如冒泡排序.归并排序.选择排序.插入排序.快速排序等,其中最经典最需要掌握的是「冒泡排序」. 以从小到大排序为例,冒泡排序的整体思想是这样的: 从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素

  • C语言数组元素循环右移问题及解决方法

    C 语言是一种通用的.面向过程式的计算机程序设计语言.1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言. C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用. 题目内容: 解题思路 方法一: 这是我自己摸索出来的一种方法,通过对数组的多次逆置来达到循环的效果,一共对数组进行了三次逆置,所以就需要构造一个函数, 这个函数既可以逆置一个数组,也可以逆置数组的部分区间. 1,先将整个数组[0,N

  • 解决C语言数组元素循环右移的问题

    如下所示: #include<stdio.h> #define N 100 int main() { int a[N]; int i,j,k,n,m,temp=0; scanf("%d %d",&n,&m); i=0; while(i<n) { scanf("%d",&a[i]); i++; } for(j=0;j<m;j++) //移动次数 { temp=a[n-1]; //保存最后一位数 for(k=n-1;k&g

  • C语言数组元素的循环移位方法

    如下所示: /*C语言数组元素的循环移位*/ #include <stdio.h> int main() { int num[5],num1[5]; int i, j,k=1; int t,n; printf("请输入5个数:"); for(i=0;i<5;i++) { scanf("%d",&num[i]); //将数读入数组num } printf("请输入循环次数:"); scanf("%d",

  • C语言中判断两数组中是否有相同的元素

    思路: 首先创建两个数组,分别为a[ ]和b[ ]先拿a数组里的第一个元素和b数组的所有元素比较是否相同,再拿a数组里的第二个元素与b数组所有元素进行比较,以此类推.运用两次for循环来完成,用i循环生成a数组的各个下标,在循环体中用j循环生成b数组下标,j循环中判断a[ i ]是否等于b[ j ],如果条件成立即相同元素.flag用来标记程序运行到某一刻的状态,来加以判断if中的语句是否执行. system函数的作用是运行以字符串参数的形式传递给他的命令,并且等待该命令的完成,形式:#incl

  • C语言将数组中元素的数排序输出的相关问题解决

    问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个.例如输入数组{32,  321},则输出这两个能排成的最小数字32132.请给出解决问题的算法,并证明该算法.       思路:先将整数数组转为字符串数组,然后字符串数组进行排序,最后依次输出字符串数组即可.这里注意的是字符串的比较函数需要重新定义,不是比较a和b,而是比较ab与 ba.如果ab < ba,则a < b:如果ab > ba,则a > b:如果ab = ba,则a = b.比较

  • C语言数组添加和删除元素的实现

    数组不擅长插入(添加)和删除元素.数组的优点在于它是连续的,所以查找数据速度很快.但这也是它的一个缺点.正因为它是连续的,所以当插入一个元素时,插入点后所有的元素全部都要向后移:而删除一个元素时,删除点后所有的元素全部都要向前移. 插入算法 # include <stdio.h> int main(void) { int a[23] = {1, 5, 66, 8, 55, 9, 1, 32, 5, 65, 4, 8, 5, 15, 64, 156, 1564, 15, 1, 8, 9, 7,

  • C语言找出数组中的特定元素的算法解析

    问题描述:一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它.能否只用一个额外数组和少量其它空间实现.       思路:如果能用两个辅助数组,那么相对来说简单一点,可定义数组Min和数组Max,其中Min[i]表示自a[i]之后的最小值(包括a[i]),Max[i]表示自a[i]之前元素的最大值.有了这两个辅助数组后,对于a[i],如果它大于Max[i-1]并且小于Min[i+1],那么就符合要求.       但是题目要求是只用一个

  • C语言输出旋转后数组中的最小数元素的算法原理与实例

    问题描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个排好序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1.      思路:这道题最直观的解法并不难.从头到尾遍历数组一次,就能找出最小的元素,时间复杂度显然是O(n).但这个思路没有利用输入数组的特性.既然有时间复杂度更小的算法,我们容易想到二分查找,因为它的时间复杂度为O(logn).这个问题是否可以运用二分查找呢?答

  • C语言数组任意位置插入一个元素方法

    前言: 这篇文章我们来看看向C语言的数组中随机插入一个元素的方法. 如果是在python向列表中随机添加元素,我们往往使用insert()的方法. l = ['Python', 'C++', 'Java'] #插入元素 l.insert(1, 'C') print(l) #插入元组,整个元祖被当成一个元素 t = ('C#', 'Go') l.insert(2, t) print(l) #插入列表,整个列表被当成一个元素 l.insert(3, ['Ruby', 'SQL']) print(l)

  • 数组任意位置插入元素,删除特定元素的实例

    如下所示: $ary = array( array('t'=>1,'y'=>2), array('t'=>2,'y'=>9) ); $t = array_splice( $ary, 1,0,array(array('t'=>3,'y'=>10)) ); print_r($ary); 控制台输出: $ary = array( array('t'=>1,'y'=>2), array('t'=>3,'y'=>10), array('t'=>2,'

  • php数组函数序列之array_splice() - 在数组任意位置插入元素

    array_splice定义和用法 array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替. 如果提供了第四个参数,则之前选中的那些元素将被第四个参数指定的数组取代. 最后生成的数组将会返回. 语法 array_splice(array,offset,length,array)参数 描述 array 必需.规定数组. offset 必需.数值.如果 offset 为正,则从输入数组中该值指定的偏移量开始移除.如果

  • PHP实现数组向任意位置插入,删除,替换数据操作示例

    本文实例讲述了PHP实现数组向任意位置插入,删除,替换数据操作.分享给大家供大家参考,具体如下: array_splice函数可以实现任意位置插入和删除,替换 array array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] ) offset 如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除.如果 offse

  • java实现向有序数组中插入一个元素实例

    整理文档,搜刮出一个java实现向有序数组中插入一个元素,稍微整理精简一下做下分享 package cn.jbit.array; import java.util.*; public class Insert { public static void main(String[] args) { //字符排序 char[] chars = new char[9]; chars[0] = 'a'; chars[1] = 'c'; chars[2] = 'u'; chars[3] = 'b'; cha

  • JS如何在数组指定位置插入元素

    一.JavaScript splice() 方法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. 方法实例 //在数组指定位置插入 var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2, 0, "Lemon", "Kiwi"); //输出结果 //Banana, Orange,

  • 易语言在组合框指定位置插入一个新项目的方法

    插入项目方法 英文命令:InsertString 所属对象:组合框 插入指定项目到组合框列表部分的指定位置处,成功返回插入后该项目所处的位置,失败返回 -1 . 语法:  整数型  组合框.插入项目 (欲插入的位置,欲插入项目的文本,[与欲插入项目相关的数值]) 例程: 说明: 在组合框指定位置插入一个新项目. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • JS 在数组指定位置插入/删除数据的方法

    splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. 语法 arrayObject.splice(index,howmany,item1,.....,itemX)  参数说明 参数 描述 index 必需.整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置. howmany 必需.要删除的项目数量.如果设置为 0,则不会删除项目. item1, -, itemX 可选.向数组添加的新项目. 实例 添加一个元素 var array = [1,2,3,4,6]; ar

  • JavaScript实现数组在指定位置插入若干元素的方法

    本文实例讲述了JavaScript实现数组在指定位置插入若干元素的方法.分享给大家供大家参考.具体如下: 我们可以通过JS数组的splice方法在执行的位置插入新的元素,非常简单 <!DOCTYPE html> <html> <body> <p id="demo"> Click the button to add elements to the array. </p> <button onclick="myFu

  • matplotlib 向任意位置添加一个子图(axes)

    当前有效matplotlib版本为:3.4.1. 概述 axes()函数功能与subplot()函数极其相似.都是向当前图像(figure)添加一个子图(Axes),并将该子图设为当前子图或者将某子图设为当前子图.两者的区别在于subplot()函数通过参数确定在子图网格中的位置,而axes()函数在添加子图位置时根据4个坐标确定位置. 函数的定义签名为:matplotlib.pyplot.axes(arg=None, **kwargs) 函数的调用签名为: # 在当前图像中添加一个铺满的子图

随机推荐