c语言插入数组元素(数组)

c语言插入数组元素(数组),第1张

C语言中,数组是一组连续的相同类型的数据集合。 所以要在数组中插入元素,需要按照以下步骤:

1、找到插入点;

2、将插入点所在元素,及之后的所有元素,都向后移动一个单位;

3、将插入点赋值为要插入的元素。

以固定位置插入,代码举例如下:

#include <stdio.h>

void insert(int *a, int n, int i, int v)

//将长度为n的数组a, 下标为i的位置插入值为v的元素。 插入后,数组长度为n+1.

{

    int j

    for(j = n-1 j>=i j --)//将i及以后的后移一位。 由于是固定位置插入,所以不需要查找插入位置。 

        a[j+1] = a[j]

    a[i] = v//插入元素。 

}

int main()

{

    int a[5] = {1,3,6,7}/五个元素数组,初始化四个值。

    int i

    

    insert(a, 4, 2, 5)//将5插入到a[2]位置。 

    for(i = 0 i < 5 i ++)

        printf("%d ", a[i])//输出结果,为1 3 5 6 7 

    return 0

}

下面是改好的,具体请看注释:

#include<stdio.h>

int main()

{

int a[11]={1,3,5,15,36,37,58,79,80,95},i,t1,t2

int j//这里!这里!这里!这里!需要新定义一个变量来控制数组元素的后移

printf("Previous is:\n")

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

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

printf("\nPlease input a number:")

scanf("%d",&t1)

printf("\nNow is:\n")

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

{

if(a[i]>t1)

{

for(j=10j>ij--) //这里!这里!这里!这里!

{

a[j]=a[j-1]//这里!这里!这里!这里!

}

a[i] = t1

break//这里!这里!这里!这里!放错位置了,应该在里面

}

}

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

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

printf("\n")

return 0

}

有两种方式:

1

先输入数值,在存放在数组的对应位置中,即赋值给对应元素。

scanf("%d",&i)

a[k]

=

i

就是先输入到变量i中,然后把i存储在a的第k个元素中。

2

直接输入到数组对应元素中。

scanf("%d",&a[k])

与1中的例子是相同效果,只是减少了中间变量的使用。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11630742.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存