c语言向一个有序数组里插数

问题描述:c语言 向有序数组中插入一个数,保持原顺序不变,将新数组输出 大家好,小编来为大家解答以下问题,c语言在一个有序数组里面加一个数,并按顺序输出,c语言在有序数列中加入一个数使其任然有序,现在让我们一起来看看吧!

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

c语言向一个有序数组里插数的相关图片

#include"stdafx.h"。

#include<stdio.h>。

intmain()

intm,n,i,j,h;

inta[17]={1,5,9,14,23,34,45,56,67,78,89,99,105,126,156};。

scanf("%d,%d",&m,&n);。

for(i=0;i<15;i++)//这里i<16;改成i<15;因为插入前数组有15个元素。

if(m<=a[i])//这里m<a[i]改成m<=a[i]。

for(j=14;j>=i;j--)。

a[j+1]=a[j];

a[i]=m;

break;//这里加break;插入m后退出循环。

for(i=0;i<16;i++)。

if(n<=a[i])//这里n<a[i]改成n<=a[i]。

for(j=15;j>=i;j--)。

a[j+1]=a[j];

a[i]=n;

break;//这里加break;插入n后退出循环。

for(i=0;i<17;i++)//这里i<16;改成i<17;因为插入后数组有17个元素。

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

return0;

扩展资料

C语言输出数组的每一个值

#include<stdio.h>。

intmain()

inta[8]={0,1,2,3,4,5,6,7};。

printf("%d---%d--%d--%d--%d--%d--%d--%d",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]);。

return0;

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

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

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

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

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

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

在c语言中,如何在数组中插入一个数的相关图片

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

源程序如下:

#define _CRT_SECURE_NO_WARNINGS。

#include<stdio.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]);。

程序输出结果如下:

扩展资料:

/*#include<stdio.h>//感觉用二分法不错 直接插入排序也不错。

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

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

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

{  

int i,j,t,f;  

for(i=0;i<length;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;i<length+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语言中,如何在数组中插入一个数?的相关图片

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

方法为:输入一个数据x,将数组中的数据与x逐一比较,如果大于x,记录下数据的下标,然后此数据下标和其后的数据的下标都加一,相当于都向后挪一位,然后将x赋值给数组的那个下标。

#include<stdio.h>。

int main()

int i, j, k, x, a[11] =(3, 6, 7, 9, 12, 14, 15, 27, 29, 31) ;。

printf("插入前数组的数据是:") ;。

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

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

printf("\n") ;

printf("请输入要插入的数据:") ;。

scanf("%d",&x) ;。

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

if(a[i]>x)

break;

for(j=9; j>=i; j--)。

aLj+1] =aLj] ;

a[i]=x;

printf("插入后数组的数据是:") ;

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

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

return 0;

扩展资料:

数组的使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;(请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。)

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

参考资料:

百度百科-数组

C语言,有序数组插入一个数

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

#include<stdio.h>。

int main()

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

scanf("%d",&n);。

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++];}}。

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]);}}。

原文地址:http://www.qianchusai.com/c%E8%AF%AD%E8%A8%80%E5%90%91%E4%B8%80%E4%B8%AA%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E9%87%8C%E6%8F%92%E6%95%B0.html

选一个季节写作文450字,选一个季节写一篇作文200字

选一个季节写作文450字,选一个季节写一篇作文200字

优秀作文及名师点评,优秀作文及名师点评范文

优秀作文及名师点评,优秀作文及名师点评范文

简爱词语摘抄,简爱词语句子段落摘抄

简爱词语摘抄,简爱词语句子段落摘抄

抄写作文500字,抄一篇500字的优秀作文

抄写作文500字,抄一篇500字的优秀作文

写一篇五百字读后感,写一篇五百字读后感四年级

写一篇五百字读后感,写一篇五百字读后感四年级

cc/台虎钳架子制作,台虎钳架子制作尺寸

cc/台虎钳架子制作,台虎钳架子制作尺寸

日常生活周记300字左右,日常生活周记300字左右怎么写

日常生活周记300字左右,日常生活周记300字左右怎么写

网件r4300v2,网件r4300刷梅林固件

网件r4300v2,网件r4300刷梅林固件

含羞草短文阅读理解答案,含羞草这篇短文告诉我们什么道理

含羞草短文阅读理解答案,含羞草这篇短文告诉我们什么道理

哄女朋友的谐音小故事,有什么讲给女朋友的谐音梗

哄女朋友的谐音小故事,有什么讲给女朋友的谐音梗