c语言函数插入有序数组,数组逆序存放c语言

C语言有一个有序整数数组,要求用户依次输入三个整数,将这三个整数插入到该数?

首先必须明确这个有序数组是升序还是降序的。然后编写一个有序插入函数。在主函数中三次读入整数,并调用插入函数就可以实现这个功能。

创新互联公司是专业的新市网站建设公司,新市接单;提供成都网站建设、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行新市网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

void insert(int a[],int*n,int x)//在有n个元素的升序数组a中插入元素x

{int i;

for(i=n-1;i=0a[i]x;i--)

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

a[i+1]=x;

(*n)++;

}

调用语句:

for(i=0;i3;i++)

{scanf("%d",x);

insert(a,n,x);

}

C语言插入一个有序数组的问题?

这还要怎么解释。很明白了。

先把输入的数排序,然后找到插入x的位置,然后把x之后的都往后挪动一个。就完成了

c语言插入一个数到有序数组中的问题。。

修改insert函数中的for语句如下:

for(i=N-1;i=pos;i--)

{

x[i+1]=x[i];

}

你往数组中插入了一个新的值,数组的长度增加了1,所以返回N+1咯,这样就能在接下来的输出中使用这个新值N

一维数组的有序插入,用C语言写。

int insertX(int *pa,int n,int x)

{

int i,k;

for(i=0;in;i++)

if (pa[i]x) break;

for(k=n;ki;k--)

pa[k]=pa[k-1];

pa[i]=x;

return(0);

}

void main()

{

int a[100]={0,1,2,3,4,6,8,9,10};

int i;

insertX(a,9,5);

for(i=0;i10;i++)

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

}

C程序编写,将一个数插入到一个已经有序的数组里,要求保持有序

源程序如下:

#define _CRT_SECURE_NO_WARNINGS

#includestdio.h

int main()

{

int i, j, t, k;//定义循环变量

const int n = 10;//定义数组元素个数

int a[n], b[n + 1];//定义两个数组

printf("您喜欢的有序数组:\n");//输入数组序列文字提

for (i = 0; i n; i++)

{

scanf("%d", a[i]);//循环输入数组元素

}

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

scanf("%d", k);

for (i = 0; i = n; i++)//循环遍历

{

if (i == n) b[i] = k;//如果走到最后都没有地方插入就放在最后

else b[i] = 0;

}

for (i = 0; i n; i++)//循环遍历

{

for (j = 0; j n; j++)

{

b[j] = a[i++];//依次将数组a付给b

}

}

for (j = 0; j n; j++)//冒泡排序,将数组数列排好

{

for (i = 0; i n - j; i++)

{

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

{

t = b[i];

b[i] = b[i + 1];

b[i + 1] = t;

}

}

}

for (j = 0; j n + 1; j++)//顺序输出

{

printf("%d ", b[j]);

}

}

程序输出结果如下:

扩展资料:

/*#includestdio.h//感觉用二分法不错 直接插入排序也不错

//插入函数 往有序的数组a里插入值为element的元素使数组a依然有序 

//算法思想大概就是从头开始遍历找到第一个大于element的数 然后插入 然后后面的元素依次移动。

void insert_array(int *a,int length,int element)

{  

int i,j,t,f;  

for(i=0;ilength;i++)  

{    

if(a[i]element)       

{     

t=i;//找到位置以后 可以依次移动数组元素腾出位置了      

for(j=length;j=t;j--)          

{               

if(j==t)        

a[j]=element;      

else              

a[j]=a[j-1];//数组依次往后移动,不管正序还是倒序都可以

}  

f=1;   

break;     

}              

}  

if(f!=1)//当element大于所有数组元素时候   

{     

a[length]=element;   

}  

for(i=0;ilength+1;i++)  

{   

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

}

int main()

int a[5]={1,2,3,5,6}; 

int e=7;  

insert_array(a,5,e);

}

C语言求助,把一个数插入到一个已排好序的数组中

1、可以用下面代码把数插入一个排好序的数组,数组进行迭代取值。

2、下面是数组排序的代码,这里是按大小排序的,每次取值和输入的数比较,比输入的数小,就往后移动移位,直到移出输入数该放的位置,反之也是。

3、或者用下图的代码实现,有一个已排好序的数组,现在插入一个数字。

4、按原来已排好的排序规律将它插入数组,i++循环比较简单。


标题名称:c语言函数插入有序数组,数组逆序存放c语言
标题URL:http://myzitong.com/article/dsigcec.html