精华内容
下载资源
问答
  • 数组不擅长插入(添加)和删除元素数组的优点在于它是连续的,所以查找数据速度很快。但这也是它的一个缺点。正因为它是连续的,所以当插入一个元素时,插入点后所有的元素全部都要向后移;而删除一个元素时,删除点...

    数组不擅长插入(添加)和删除元素。数组的优点在于它是连续的,所以查找数据速度很快。但这也是它的一个缺点。正因为它是连续的,所以当插入一个元素时,插入点后所有的元素全部都要向后移;而删除一个元素时,删除点后所有的元素全部都要向前移。

    插入算法

    # include

    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, 215};

    int b[24]; //用来存放插入数字后的新数组, 因为又插入了一个值, 所以长度为24

    int Index; //插入值的下标, Index是“下标”的英文单词

    int num; //插入的值

    int i; //循环变量

    printf("请输入插入值的下标:");

    scanf("%d", &Index);

    printf("请输入插入的数值:");

    scanf("%d", &num);

    for (i=0; i<24; ++i)

    {

    if (i < Index)

    {

    b[i] = a[i]; /*循环变量i小于插入值位置Index时, 每一个元素所放的位置不变*/

    }

    else if (i == Index)

    {

    b[i] = num; //i等于Index时, 将插入值赋给数组b

    }

    else

    {

    b[i] = a[i-1]; /*因为插入了一个新的元素, 所以插入位置后的每一个元素所存放的位置都要向后移一位*/

    }

    }

    for (i=0; i<24; ++i)

    {

    printf("%d\x20", b[i]);

    }

    printf("\n");

    return 0;

    }

    输出结果是:

    请输入插入值的下标:10请输入插入的数值:22

    1 5 66 8 55 9 1 32 5 65 22 4 8 5 15 64 156 1564 15 1 8 9 7 215

    删除算法

    # include

    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, 215};

    int b[22]; /*用来存放删除数字后的新数组, 因为删除了一个值, 所以长度为22*/

    int Index; //要删除的值的下标

    int i; //循环变量

    printf("请输入要删除的值的下标:");

    scanf("%d", &Index);

    for (i=0; i<23; ++i)

    {

    if (i < Index)

    {

    b[i] = a[i]; /*循环变量i小于插入值位置Index时, 每一个元素所存放的位置不变*/

    }

    else

    {

    b[i] = a[i+1]; /*删除值后面的元素都往前移一位, 要删除的值直接被覆盖*/

    }

    }

    for (i=0; i<22; ++i)

    {

    printf("%d\x20", b[i]); // \x20表示空格

    }

    printf("\n");

    return 0;

    }

    输出结果是:

    请输入要删除的值的下标:5

    1 5 66 8 55 1 32 5 65 4 8 5 15 64 156 1564 15 1 8 9 7 215

    实例

    37, 49, 51, 61。设计程序对数组中的数据实现一次删除及插入操作:

    利用getchar()函数接收键盘输入:

    ● 当输入字符'D'时,接收键盘输入一个数组中存在的整数n,并对数组中存在的该整数进行删除,要求删除后的数组各元素仍按照从小到大的顺序排列。

    要求:不使用冒泡法或选择法实现删除数据后的排序操作。

    ● 当输入字符'I'时,接收键盘输入一个数组中不存在的整数m,并将该整数m插入到数组中,要求插入后的数组各元素仍按照从小到大的顺序排列。

    要求:不使用冒泡法或选择法实现插入数据后的排序操作。

    样例输入和输出:

    数组排序后的结果为:5, 9, 11, 16, 24, 34, 37, 49, 51, 61

    请输入需要进行的操作(插入'I',删除'D'):D

    请输入需要删除的整数:9

    删除后的数组为:5, 11, 16, 24, 34, 37, 49, 51, 61

    请输入需要进行的操作(插入'I',删除'D'):I

    请输入需要插入的整数:13

    插入后的数组为:5, 11, 13, 16, 24, 34, 37, 49, 51, 61

    #include

    int main()

    {

    int a[10] = { 5, 9, 11, 16, 24, 34, 37, 49, 51, 61 };

    int i = 0,n=0,k=0;

    char get;

    for (i = 0; i < 10; i++)

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

    printf("\n");

    printf("请输入需要进行的操作(插入‘I',删除‘D')\n");

    get = getchar();

    getchar();

    if (get=='D')

    {

    printf("请输入要删除的整数:\n");

    n = getchar();

    getchar();

    n -= 48;

    for (i = 0; i < 10; i++)

    {

    if (a[i]==n)

    {

    for (; i < 10; i++)

    {

    a[i] = a[i + 1];

    }

    a[9] = 0;

    break;

    }

    }

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

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

    printf("\n");

    }

    printf("请输入需要进行的操作(插入‘I',删除‘D')\n");

    get = getchar();

    getchar();

    if (get='I')

    {

    printf("请输入要插入的整数:\n");

    scanf_s("%d", &n); //注意陷阱,不能用getchar(),因为13其实是两个字符,回车之后,n只吸收了‘1',所以只能用scanf_s().

    for (i = 0; i < 10; i++)

    {

    if (a[i] < n&&n < a[i + 1])

    {

    k = i;

    for (i = 8; i > k; i--)

    {

    a[i+1] = a[i];

    }

    a[k+1] = n;

    break;

    }

    }

    for (i = 0; i < 10; i++)

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

    }

    return 0;

    }

    到此这篇关于C语言数组添加和删除元素的实现的文章就介绍到这了,更多相关C语言数组添加和删除元素内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    展开全文
  • 数组不擅长插入(添加)和删除元素数组的优点在于它是连续的,所以查找数据速度很快。但这也是它的一个缺点。正因为它是连续的,所以当插入一个元素时,插入点后所有的元素全部都要向后移;而删除一个元素时,删除点...

    数组不擅长插入(添加)和删除元素。数组的优点在于它是连续的,所以查找数据速度很快。但这也是它的一个缺点。正因为它是连续的,所以当插入一个元素时,插入点后所有的元素全部都要向后移;而删除一个元素时,删除点后所有的元素全部都要向前移。

    插入算法

    # include 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, 215}; int b[24]; //用来存放插入数字后的新数组, 因为又插入了一个值, 所以长度为24 int Index; //插入值的下标, Index是“下标”的英文单词 int num; //插入的值 int i; //循环变量 printf("请输入插入值的下标:"); scanf("%d", &Index); printf("请输入插入的数值:"); scanf("%d", &num); for (i=0; i<24; ++i) { if (i < Index) { b[i] = a[i]; /*循环变量i小于插入值位置Index时, 每一个元素所放的位置不变*/ } else if (i == Index) { b[i] = num; //i等于Index时, 将插入值赋给数组b } else { b[i] = a[i-1]; /*因为插入了一个新的元素, 所以插入位置后的每一个元素所存放的位置都要向后移一位*/ } } for (i=0; i<24; ++i) { printf("%dx20", b[i]); } printf("n"); return 0; }

    输出结果是:

    请输入插入值的下标:10请输入插入的数值:22

    1 5 66 8 55 9 1 32 5 65 22 4 8 5 15 64 156 1564 15 1 8 9 7 215

    删除算法

    # include 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, 215}; int b[22]; /*用来存放删除数字后的新数组, 因为删除了一个值, 所以长度为22*/ int Index; //要删除的值的下标 int i; //循环变量 printf("请输入要删除的值的下标:"); scanf("%d", &Index); for (i=0; i<23; ++i) { if (i < Index) { b[i] = a[i]; /*循环变量i小于插入值位置Index时, 每一个元素所存放的位置不变*/ } else { b[i] = a[i+1]; /*删除值后面的元素都往前移一位, 要删除的值直接被覆盖*/ } } for (i=0; i<22; ++i) { printf("%dx20", b[i]); // x20表示空格 } printf("n"); return 0; }

    输出结果是:

    请输入要删除的值的下标:5

    1 5 66 8 55 1 32 5 65 4 8 5 15 64 156 1564 15 1 8 9 7 215

    展开全文
  • C语言数组插入元素

    千次阅读 2019-11-18 22:39:54
    一、运行结果 二、源代码 #include <stdio.h>... //长度11,最后3个元素初始化为0 int a[11]={0,1,2,3,4,11,12,13 }; int b,insertpos; int i; for(i=0; i<11; i++) { printf(...

    一、运行结果

    二、源代码

    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
    	//长度11,最后3个元素初始化为0 
    	int a[11]={0,1,2,3,4,11,12,13 	};
    	int b,insertpos;
    	int i;
    	for(i=0; i<11; i++)
    	{		printf("%d, ",a[i]);
    	}
    		printf("\n------input:",a[i]);
    	
    	scanf("%d", &b);
    	insertpos=0;
    	//i< 有效元素的个数	
    	for(i=0; i<8; i++)
    	{	// 找到插入位置 
    		if( a[i] < b)
    		{	insertpos++;
    		}	
    		else 
    			break; 		
    	}
    
    	for(i=10; i> insertpos; i--)
    	{	 a[i]=a[i-1];	//后移 
    	}
    	//然后赋值到指定位置 
    	a[insertpos] =b;
    	for(i=0; i<11; i++)
    	{		printf("%d, ",a[i]);
    	}
    		
    	return 0;
    }
    

     

    展开全文
  • C语言数组如何插入元素

    千次阅读 2021-03-03 13:28:59
    C语言数组如何插入元素 int *arr; int value = 0; arr = (int*) malloc(100 * sizeof(int)); //这种方式可以 arr[i] = value; //这种方式也可以 *(arr+i) = value

    C语言数组如何插入元素

    int *arr;
    int value = 0;
    arr = (int*) malloc(100 * sizeof(int));
    //这种方式可以
    arr[i] = value;
    //这种方式也可以
    *(arr+i) = value

     

    展开全文
  • 如果是在python向列表中随机添加元素,我们往往使用insert()的方法。l insert()的第一个参数是位置,第二个参数就是插入的值。我们仍然延续昨天的风格定义函数:void 函数的参数是数组名和数组长度,当然在我们定义...
  • 1.C语言数组的概念在《更加优美的C语言输出》一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下:#include <stdio.h>#include <stdlib.h>int main(){ int a1=20, a2=345, a3=700, a4=22; ...
  • C语言数组——字符数组

    千次阅读 多人点赞 2020-02-17 20:59:51
    C语言目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析 ...C语言数组——二维数...
  • c语言数组数组名An array is a variable that stores multiple values. 数组是存储多个值的变量。 Every value in the array, in C, must have the same type. This means you will have arrays of int values, ...
  • C语言数组

    千次阅读 2016-05-15 07:31:02
    1.C语言数组的概念 在《printf函数的高级用法》一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include #include int main(){ int a1=20, a2=345, a3=700, a4=22; int b1=56720, b2=9999...
  • C语言 数组1

    2020-07-26 11:01:14
    一组具有相同类型的数据元素集合,在C语言中有一维数组,二维数组,多维数组,这些都可以看成一维数组数组元素的存储地址是相邻的。 1.一维数组 多维数组也可以看成一维数组,如二维数组,可以看成一维数组,这个...
  • C语言数组总结

    2019-11-12 20:21:25
    我们把这样的一组数据的集合称为数组(Array),它所包含的每一个数据叫做数组元素(Element),所包含的数据的个数称为数组长度(Length),例如 int a[4];就定义了一个长度为 4 的整型数组,名字是 a。 数组中的每...
  • C语言动态添加数组元素

    万次阅读 2017-01-24 12:08:41
    有时候需要用数组实现List功能,普通静态数组长度被固定无法动态...但数组元素超过10个之后想再添加元素,直接这样写: *(array+10) = x; 虽然也可以正常编译执行,但这是个错误写法,因为我们只为array分配了array
  • c语言数组总结

    2018-12-23 22:54:09
    定义一个有5个int型元素数组 系统在内存分配连续的5个int空间给此数组 直接对a的访问,就是访问此数组的首地址 模拟:把实际操作模拟一遍 ,得到结果 编译程序应检查是否越界。如果下标越界,将访问数组以外的...
  • C语言数组相关内容

    2018-03-12 16:54:46
    C/C++里面的数组名字会退化为指针,所以数组名arr实际指的是数组的第一个元素的地址。而数组名作为指针来讲有特殊性,它正在它所指向的内存区域中,&amp;arr的值和arr的数值是相同的(可以输出观察一下),但是...
  • 我们可以将二维数组看作一个Excel表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。二维数组在概念上是二维的,但在内存中是连续存放的,换句话说,二维数组...
  • malloc,realloc,calloc一直很头疼,这次...//删除函数,删除ptr中的ptr[in]元素,n是数组原来的长度。 void rmv(int *ptr,int in,const unsigned int n) { unsigned int i; for (i=in; i<n-1; i++) { *(p...
  • C语言数组编写贪吃蛇

    千次阅读 多人点赞 2020-03-27 13:23:13
    解析:就相当域蛇身获取了蛇头元素,蛇尾获取了蛇身的元素 蛇头 蛇头 蛇身 蛇尾 坐标加2,myArray 数组移动后 然后放到main函数里面while(1)循环,坐标x一直加2,蛇头一直向前 蛇头 蛇头 蛇头 蛇身 九....
  • C语言数组的深入解读

    千次阅读 2018-11-08 18:42:05
    文章目录指定初始化器(Designated initializer)错误的数组初始化下标越界问题分析 指定初始化器(Designated initializer) 上一段代码,数组的指定初始化器这样用,但是要注意 C99 之后才允许这样哦,观察其...
  • C语言数组知识点梳理

    2020-03-14 21:49:18
    数组元素只能逐个进行引用,不能一次性引用。 数组越界的危害: (1)会覆盖其他变量的值(越界短时) (2)会出现段错误(越界过长) a+i==&a[i] *(a+n)=a[n] 对于一维数组 eg:int a[5] a ——————表示一级地址...
  • c语言数组中插入新数据

    万次阅读 多人点赞 2019-01-03 15:05:06
    数组插入数据  在数组的应用中,我们有时会向数组中插入一个数据,而且不打破原来的排序规律,其实数组中的插入数据,就是数据的比较和移动;如果想要弄懂这些方法最好拿笔比划以下,或者debug一下,了解其中的...
  • 对像我一样的初学者而言,指针数组数组指针,听名字就很容易傻傻分不清。对于数组与指针的不同,笔者已经在上一篇文章里面已经做出了相对简单的解释。那么,“指针数组”和“数组指针”这俩货,又是个啥奇怪的东西...
  • 知识点:一、NSArray:不可变数组及其使用二、NSMutableArray:可变数组及其使用1.数组的基本用法2.数组的遍历3.数组的其他用法一、数组的简单介绍1.数组是一个对象,是任意类型对象地址的集合...在C语言中的数组可以...
  • cJSON数组添加元素.docx

    2021-05-12 10:14:58
    cJSON为数组项目添加字符串元素,单片机C语言开发

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,350
精华内容 18,540
关键字:

c语言数组添加元素的方法

c语言 订阅