在c语言中,如何在数组中插入一个数

在c语言中,如何在数组中插入一个数,第1张

程序1:这个是输入10个数

先排序

插入一个数

再排序

数组大小你可以自己更改

#include

<stdio.h>

void

main()

{

int

i,j,m,temp,a[11]

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

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

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

for(j=i+1j<10j++)

if(a[i]>a[j])

{

temp=a[i]

a[i]=a[j]

a[j]=temp

}

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

printf("%d

",a[i])

scanf("%d",&m)

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

if(a[i]>m)

{

temp=a[i]

a[i]=m

m=temp

}

a[10]=m

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

printf("%d

",a[i])

printf("\n")

}

程序2:如果题中已给排好序的数组

不必自己输入的话

#include

<stdio.h>

void

main()

{int

a[11]={1,4,6,9,13,16,19,28,40,100}

int

temp1,

temp2,number,end,i,j

printf("array

a:\n")

for

(i=0i<10i++)

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

printf("\n")

printf("insert

date:")

scanf("%d",&number)

end=a[9]

if(number>end)

a[10]=number

else

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

{if(a[i]>number)

{temp1=a[i]

a[i]=number

for(j=i+1j<11j++)

{temp2=a[j]

a[j]=temp1

temp1=temp2

}

break

}

}

}

printf("now,array

a:\n")

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

printf("%d

",a[i])

}

C语言向有序数组中插入一个数使该数组仍保持有序

#include<stdio.h>

int main()

{int n,i,j,t,kprintf("您喜欢的数组长度:\n")

scanf("%d",&n)

int a[n],b[n+1]

printf("您喜欢的有序数组:\n")

for(i=0i<ni++)

{scanf("%d",&a[i])}

printf("请输入想插入的数字\n")

scanf("%d",&k)

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

{if(i==n) b[i]=kelse b[i]=0}

for(i=0i<ni++)

{for(j=0j<nj++)

{b[j]=a[i++]}}

for(j=0j<nj++)

{for(i=0i<n-ji++)

{if(b[i]>b[i+1])

{t=b[i]b[i]=b[i+1]b[i+1]=t}}}

for(j=0j<n+1j++)

{printf("%d ",b[j])}}

C语言的数组有动态数组和静态数组两种。

1 静态数组。

对于静态数组,无法新增加数组成员数量。

所以一定要最初始定义足够大的数组,然后可以用一个整型变量维护数组中现有成员个数,再动态增加实际成员个数。

比如

int a[1000]

int n = 0

while(scanf("%d",&a[n]) != EOF) n ++

这样的代码就可以实现增加数组成员数的类似效果。n为实际成员个数。

2 动态数组。

动态数组是可以随时改变数组成员个数的。不过为了确定当前数组个数,需要用两个整型变量来保存最大成员数,和已有成员数,这样就可以在不够的时候进行扩大。

int n = 0, size = 100 //n为当前元素个数,size为数组大小,初始为100.

int *a = NULL//数组指针。

a = (int *)malloc(sizeof(int) * size) // 初始分配100个元素。

while(scanf("%d",&a[n]) != EOF) 

{

    n++

    if(n >= size)//空间不足。

    {

            size+=100//增加100个元素空间。

            a = (int *)realloc(sizeof(int)*size, a)//重新分配空间。

    }

}


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

原文地址: http://outofmemory.cn/bake/11917038.html

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

发表评论

登录后才能评论

评论列表(0条)

保存