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

如题所述

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

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

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

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

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-28
可参考这个程序(我自己编的,不足之处请见谅),在visual C++6.0中运行通过!
#include <stdio.h>
void main()
{
int a[11]={1,3,5,9,23,34,51,68,91,100};
int num,i,j;
printf("array a is:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\nplease input a number:\n");
scanf("%d",&num);
if(num>a[9])
a[10]=num;
else
{
for(i=0;i<10;i++)
if(num<a[i])
{
for(j=9;j>=i;j--)
a[j+1]=a[j];
a[i]=num;
break;
}
}
printf("the array now is:");
for(i=0;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
}本回答被提问者采纳
第2个回答  2009-12-07
先找到要插入的位置,然后从最后一个数开始直到刚才找到那个位置为止,依次向后移一个位置,最后将数插入到空出来的位置上。

C语言求助,把一个数插入到一个已排好序的数组中
1、可以用下面代码把数插入一个排好序的数组,数组进行迭代取值。2、下面是数组排序的代码,这里是按大小排序的,每次取值和输入的数比较,比输入的数小,就往后移动移位,直到移出输入数该放的位置,反之也是。3、或者用下图的代码实现,有一个已排好序的数组,现在插入一个数字。4、按原来已排好的...

C程序编写,将一个数插入到一个已经有序的数组里,要求保持有序
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("...

c语言向一个已经排好序的数组中插入一个整数,保持原来的顺序不变
int str[10] = {1,2,3,4,5,6,7,8};int temp1,temp2,*q,*p = str;for(;p<str+8;p++)printf("%d ",*p);printf("\\n请输入要插入的数据:");scanf("%d",&temp1);printf("请输入插入地方的数据(左插):");scanf("%d",&temp2);for(p=str;p<str+8;p++)\/\/查找插入的位置 ...

C语言中,有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它...
C语言,有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。解:include int 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=0;i<10;i++)printf("%5d",a[i]);printf("\\n");pri...

C语言编程:有一个已排好序的数组,现输入一个数插入到数组中,要求插入该...
main(){ int a[100],n=10,i,j,x;\/*输入10个数*\/ for (i=0;i<n;i++) scanf("%d", &a[i]);\/*输入1个数*\/ scanf("%d",&x);\/*找到需要插入的位置j*\/ for (i=0;i<n;i++) if (a[i]<x) j=i+1;\/*把j之后的数据后移*\/ for (i=n;i>j;i--) a[i]=a[i-...

在c语言中,将一个数插入一个数组中的程序怎么写?
有一个已排好序(从大到小)的数组有5个元素,从键盘输入一个数,要求按原排序的规律将它插入到数组中1.#include<stdio.h>void main({int i,x,j; int {1,5,10,15,20}; scanf("%d",&x);for(i=0;i<5;i++) if(x=j;i--)a[i+1]=a[i]; \/*将位置j以后的数据都向后移一位...

C语言中,怎样把一个整数按大小顺序插入已经排好序的整形数组中?
\/*整体思路是先将输入的十个数从小到大排列好,然后再将单独输入的数与数组比较大小并将其插入数组中,这部分是关键。需要注意的是我们在刚开始时将数组长度定义为11,就是为后面插入一个数预留的空位*\/ include <stdio.h> void main(){ int a[11]; \/*数组长度为11*\/ int n=10,i,j,k...

C语言编程:一个已经排好序的数组,往里插一个数,并找出他插到哪里?
已赞过 已踩过< 你对这个回答的评价是? 评论 收起 其他类似问题2009-12-10 C语言求助,把一个数插入到一个已排好序的数组中 39 2013-12-13 c语言程序设计题:已知一个以排好的序的数组,要求输入一个数后... 10 2015-11-16 c语言程序设计:有一个已排好序的数组,要求输入一个数后,按原... 312...

有一个已经排好序的数组,现输入一个数,要求按原来的规律将它插入数组中...
【答案】:程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。程序源代码如下。main(){ int a[11]=(1,4,6,9,13,16,19,28,40,100};int tempI,temp2,number,end,i,j;printf("original array is:\\n");for(i=0:i<10...

C编程:已有一个排好序的序列,输入一个数插入该序列中,使其仍然保持有序...
\/\/已有一个排好序的序列,输入一个数插入该序列中,使其仍然保持有序 #include<stdio.h> #define N 10 void main() { int i=0,data,a[N]={1,2,3,4,6,7,8,9,10},temp; printf("please enter a num:\\n"); scanf("%d",&data); while(a[i]<data)i++; \/\/比较大小,使得i...

相似回答