C语言编程:有一个已排好序的数组,现输入一个数插入到数组中,要求插入该数后数组元素仍然有序

作者&投稿:爰池 (若有异议请与网页底部的电邮联系)
c语言程序设计:有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中~

【例】把一个整数按大小顺序插入已排好序的数组中。
为了把一个数按大小插入已排好序的数组中,应首先确定排序是从大到小还是从小到大进行的。设排序是从大到小进序的,则可把欲插入的数与数组中各数逐个比较,当找到第一个比插入数小的元素i时,该元素之前即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个后移一个单元。最后把插入数赋予元素i即可。如果被插入数比所有的元素值都小则插入最后位置。
main()
{
int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};
for(i=0;i<10;i++)
{ p=i;q=a[i];
for(j=i+1;j<10;j++)
if(q<a[j]) {p=j;q=a[j];}
if(p!=i)
{
s=a[i];
a[i]=a[p];
a[p]=s;
}
printf("%d ",a[i]);
}
printf("
input number:
");
scanf("%d",&n);
for(i=0;i<10;i++)
if(n>a[i])
{for(s=9;s>=i;s--) a[s+1]=a[s];
break;}
a[i]=n;
for(i=0;i<=10;i++)
printf("%d ",a[i]);
printf("
");
}

本程序首先对数组a中的10个数从大到小排序并输出排序结果。然后输入要插入的整数n。再用一个for语句把n和数组元素逐个比较,如果发现有n>a[i]时,则由一个内循环把i以下各元素值顺次后移一个单元。后移应从后向前进行(从a[9]开始到a[i]为止)。 后移结束跳出外循环。插入点为i,把n赋予a[i]即可。 如所有的元素均大于被插入数,则并未进行过后移工作。此时i=10,结果是把n赋于a[10]。最后一个循环输出插入数后的数组各元素值。
程序运行时,输入数47。从结果中可以看出47已插入到54和 28之间。

#include<stdio.h>
int main()
{
int a[40]={1,0},i,j,n,x;
printf("请输入数组元素的个数:");
scanf("%d",&n);
printf("请输入排好序的一串数字:
");
for(i=0;i<n;i++)
scanf("%d",&a<i>);
printf("请输入要插入的数:");
scanf("%d",&x);
if(a[0]<a[1])//该数组按升序排列
{
for(i=0;i<n;i++)
if(x<a<i>)
break;
for(j=n;j>=i;j--)//从插入位置后一位开始,每一个元素向后移一个位置
a[j]=a[j-1];
a<i>=x;
}
if(a[0]>a[1])//该数组按降序排列
{
for(i=0;i<n;i++)
if(x>a<i>)
break;
for(j=n;j>=i;j--)//从插入位置后一位开始,每一个元素向后移一个位置
a[j]=a[j-1];
a<i>=x;
}
printf("插入后的数组:
");
for(i=0;i<=n;i++)
printf("%d",a<i>);
return 0;
}

扩展资料:include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在当前项目中的函数原型、类型定义和宏
你可以在#include命令中使用宏。如果使用宏,该宏的取代结果必须确保生成正确的#include命令。例1展示了这样的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
当上述程序代码进入预处理时,如果_DEBUG_宏已被定义,那么预处理器会插入myProject_dbg.h的内容;如果还没定义,则插入myProject.h的内容。

#include <stdio.h>
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-1];
/*插入数据*/
a[j]=x;
/*输出结果*/
for (i=0;i<=n;i++) printf("%d\t", a[i]);
}


C语言中 "\\" 的作用是什么?
由此可以肯定的说,c语言是一门十分优秀而又重要的语言。 c语言程序设计是过程性程序设计语言,它的发展贯穿了计算机发展的历程,它蕴含了程序设计的基本思想,囊括了程序设计的基本概念,所以它是理工科高等院校的一门基础课程。 从市面上有关c语言的书籍和高等院校采用的教材来看,它们有一个共性,那就是:脱离了实际...

编程都有哪些语言?
目前最主要的便是这五种语言:1.Python:Python是一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。由于具有丰富和强大的库,又被称为胶水语言,Python 极其容易上手,主要源于Python有极其简单的说明文档。Python 的应用领域分为系统编程,用户图形接口,Internet 脚本,组件集成,...

编程语言有哪些?
开发工具很多。6、PHP,这是做网站常用的编程语言,一般与MySQL等数据库结合使用,大部分的网站是用PHP做的。想了解更多有关编程的详情,推荐咨询达内教育。达内教育致力于面向IT互联网行业,培养软件开发工程师、测试工程师、UI设计师、网络营销工程师、会计等职场人才,目前已在北上海广深等70个大中城市...

python编程语言?
猪八戒网(zbj.com)创建于2006年,现已形成猪八戒网、天蓬网和线下八戒工场的“双平台+一社区”服务模式,是中国领先的人才共享平台。 向TA提问 关注 展开全部 什么是Python编程语言 优点:Python是一种代表简单主义思想的语言,阅读一个良好的Python程序就感觉像是在读英语一样,使你能够专注于解决问题而不是去搞明...

C语言编程时出现的那个expected怎么理解啊?
C语言编程时编译失败后提示"expected"说明代码缺乏必要内容导致语法错误。expected表示预期,期望。在C语言编译失败后的提示信息中出现时表示编译器无法通过编译,且根据其错误给出合理的建议。此处可以发现编译器提示在花括号 '{' 前缺乏某些符号,可以帮助我们修改源代码,但需要注意的是编译器的判断可能出错...

求一下C 语言编程题的过程,谢谢
return &a[i-1];} int Insert_elem(int a[],int i,int x){ int j;if(i>size){ printf(" 错误:数组访问越界!\\n");return 0;} if(len==size){ printf("数组空间已满,继续插入,最后一个元素将被顶出数组\\n");for(j=len-1;j>=i;j--) a[j]=a[j-1];} else { for(...

编程语言有哪几种,详细介绍一下这些语言
电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。 计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它...

编程课主要学什么
C++:C+4语言保留了c语言的有效性、灵活性等特点,又添加了面向对象编程的支持,具有强大的编程功能,可方便地模拟现实问题的过程和操作。JavaScript:JavaScript是一种轻量级的编程语言,它是一个脚本语言,可以嵌入到HTML页面中,由来浏览器来解释执行,用来实现浏览器和用户之间的交互。它的应用场景主要是基于Web的开发。

大学自学编程8个网站
HTML、CSS, 还是数据库, 又或者是Python等编程语言的学习,应有尽有,关键还免费,我觉得作为一个网站,大可不必这么优秀。 传送门:https:\/\/www.w3school.com.cn\/ 中国大学MOO C 上面有很多免费的国家级编程课程,有些大学老师为了完成教师指标或者积攒声誉,就会在上面开设免费课程,比如你想学C语言,可以去上面搜一下...

学好编程有什么好处?
围棋已经是一个非常需要思维计算的项目了,但是也抵不过计算机那么强大的运算和分析。 那么什么是不容易被替代的呢? 人类的品质,探索的精神,创新的意识,文明的艺术,更高的思维方式。 我认为少儿编程重点不在于学习编程软件的使用和编程语言,而在于思维的锻炼。让孩子在愉悦的学习环境中,尽情的将自己内心的想法表达出来...

烈山区15629553187: c语言程序编写 有一个已排好序的数组,由键盘又输入一个数,要求按原来排序的规律将其插入数组中 -
羿受复方: #include<stdio.h> int main() { int a[40]={1,0},i,j,n,x; printf("请输入数组元素的个数:"); scanf("%d",&n); printf("请输入排好序的一串数字:\n"); for(i=0;i<n;i++) scanf("%d",&a<i>); printf("请输入要插入的数:"); scanf("%d...

烈山区15629553187: c语言求助,谢谢大神! 已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中, -
羿受复方: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26#include <stdio.h>intmain() {inta[15] = {9,12,13,23,24,35,46,54,57,67,89};inti,j,x,n = 11;intflag = 1;for(i = 0; i < n; ++i)printf("%d ",a[i]);printf("\n要插入的数:");...

烈山区15629553187: 用C语言写的一个程序:有一个已排好的数组,要求输入一个数后,按原来排序的规律将它插入数组中. -
羿受复方: 代码如下:#include<stdio.h> int main() { int a[20],i=0,n,x,k,j; printf("请输入一组顺序数(从小到大的顺序):"); while(~scanf("%d", &a[i])) { i++; if(getchar() == '\n') break; //在这判断,否则原先的第一个数字读不进去 } n=i; for(i=0;i<n;i++)...

烈山区15629553187: c语言 已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中. -
羿受复方: insert(int val,int* array,int* len)//val为要插入的数,array为已排序的数组(假设为升序),len为数组元素个数.{ int count,i; i=*len; for(count=0;count<i;count++) { if(val<array[count]) break; } do { array[i+1]=array[i]; i--; }while(i>=count); array[count]=val; (*len)++; //插入后将数组长度增加一 }

烈山区15629553187: C语言:有一个已排好序的数组,要求删除一个数后,还按原来的规律排好 -
羿受复方: #include"stdio.h" void del(int *a,int x,int n)//删除数组a中第x个数,n是数组大小 {int i;for(i=0;i<n;i++){if((i+1)==x){for(int j=i;j<n-1;j++)a[j]=a[j+1];break;}} } void main() {int a[10]={0,1,2,3,4,5,6,7,8,9};int i;for(i=0;i<10;i++)printf("%d ",a...

烈山区15629553187: C语言:给定一段已排好序的数组,插入一个数X,按照原来的顺序输出.例如:1 3 5 7 9 插入4 变为13 45 79 -
羿受复方: #include int main(void) {int a[10],x,i,index,n;printf("Please input n:");scanf("%d",&n);printf("Please input %d integers:",n);for(i=0; i scanf("%d",&a[i]);printf("Please input x:");scanf("%d",&x);for(i=0; i {if(a[i]<=x&&a...

烈山区15629553187: 用C语言编写已知一个排好序的数组,删除一个数使数组仍然有序.(要程序不要方法)
羿受复方: #include &lt;stdio.h&gt; void main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int temp; printf("显示数组:\n"); for (int i=0;i!=10;++i) { printf("%d ",a[i]); } printf("\n"); printf("请输入要删除的数字:\n"); scanf("%d",&amp;temp); for (i=0;i!=10;...

烈山区15629553187: c语言,有一个已安排好序的数组,要求输入一个数后,按原来排序的规律将它插 -
羿受复方: 【例】把一个整数按大小顺序插入已排好序的数组中. 为了把一个数按大小插入已排好序的数组中,应首先确定排序是从大到小还是从小到大进行的.设排序是从大到小进序的,则可把欲插入的数与数组中各数逐个比较,当找到第一个比插入数...

烈山区15629553187: 二级C语言:已有一个已排好序的数组,要求输入一个数后,按原来的排序的规律将它插入数组中. -
羿受复方: 插入后的是新数组还是原来的数组,若是原来的数组的话,则在原先定义时就要先多定义1个.往后挪一位很简单.定义a[11],有10个元素a[0]~a[9]已排序好,若插入到第五个元素a[4]后面,则只需一个for循环 for(i=9;i>5;i--) //挪动6~9的元素,第五位为插入元素,在循环完后在执行 a[i+1]=a[i]; 最后再 a[5]=插入元素;

烈山区15629553187: 4月3日截止!C语言!有一个已排好序的数组,要求按原来排序的规律将它插入数组中. -
羿受复方: #include main() { int n,i,temp1,temp2,j,a[11]={1,4,7,23,87,123,653,675,864,890}; /*设11个数,最后一个不赋值*/ printf("原数组为:"); for(i=0;iprintf("\n"); printf("请输入要插入的数n:"); scanf("%d",&n); if(n>a[9]) a[10]=n; else { for...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网