c语言程序设计:有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中

作者&投稿:察姿 (若有异议请与网页底部的电邮联系)
用c语言做以下题目:已有一个已排好的数组,要求输入一个数后,按原来排序的规律将它插入数组中。~

1、先逐个筛选数组中的每个元素。

2、再比较每相邻的两个元素。

3、根据比较结果进行元素的交换,以实现排序。

4、如果要从终端输入数组,就加一个输入函数。

5、最后,如果是从小到大排序,基本逻辑也是一样的。

注意事项:
C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

中间那一段改成:
scanf(…)//这一句及前面的不变
for(i=0;i<4;i++)if(x<a[i])break;
if(i=i;j--)a[j+1]=a[j];
a[i]=x;
for(i=0;i<5;i++)
{
printf(…)//这一句及后面的不变
应该就好了。
有什么问题请留言。

【例】把一个整数按大小顺序插入已排好序的数组中。
为了把一个数按大小插入已排好序的数组中,应首先确定排序是从大到小还是从小到大进行的。设排序是从大到小进序的,则可把欲插入的数与数组中各数逐个比较,当找到第一个比插入数小的元素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("\ninput number:\n");
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("\n");
}

本程序首先对数组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[6] = {1,3,6,7,9};
   int i,j,x,t; 
   printf("insert data:");  
  scanf("%d",&x);  
  for(i=0;i<5;i++) 
    if(x<a[i])  
    break;   
   for(j=5;j>i;j--) 
      a[j]=a[j-1];
        a[j]=x;     
   printf("Now array a:
"); 
       for(i=0;i<6;i++)  
      printf("%4d",a[i]);  
      printf("
");     
   return 0;
    }


  1. 分析问题

  2. 画出程序的基本轮廓

  3. 实现该程序

  4. 编写程序

  5. 测试和调试程序

  6. 提供数据打印结果



#include<stdio.h>
int main()
{
int a[7]={12,23,34,45,56,67};//初始化,使a中的元素值非递减有序
int i,j,x;
printf("Please input x be inserted:\n");
scanf("%d",&x);
for(i=0;i<6&&a[i]<x;i++);//查找待插入的位置i,循环停止时的i就是
for(j=5;j>=i;j--)
a[j+1]=a[j];
a[j]=x;
printf("The new array is:\n");
for(i=0;i<7;i++)
printf("%5d",a[i];
printf("\n");
return 0;
}
好好揣摩一下吧。。。祝你好运。。。


C语言程序设计,初级的~设计算法输入一个四位正整数,将它们倒排,例如输 ...
C语言程序设计,输入一个四位正整数,将它们倒排输出的算法如下:include include int main(){ int oldnum;int newnum=0;int temp;printf("please input number\\n");scanf("%d",&oldnum);printf("the old number is %d\\n",oldnum);while (oldnum !=0){ newnum = newnum*10+oldnum%10...

求程序设计语言简介
汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。3. 高级语言 从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言...

C语言结构化程序设计的思想和方法原则是什么?
然后,对每个小问题编写出一个功能上相对独立的程序块(模块)。最后将各程序块进行组装成为一个完整的程序。方法原则:1、只采用三种基本的程序控制结构来编制程序,从而使程序具有良好的结构;2、程序设计自顶而下;3、用结构化程序设计流程图来表示算法。

汇编语言是一种什么程序设计语言?
比起机器语言,汇编语言具有更高的机器相关性,更加便于记忆和书写,但又同时保留了机器语言高速度和高效率的特点。汇编语言仍是面向机器的语言,很难从其代码上理解程序设计意图,设计出来的程序不易被移植,故不像其他大多数的高级计算机语言一样被广泛应用。所以在高级语言高度发展的今天,它通常被用在...

汇编语言是一种什么程序设计语言
为了更高效地使用计算机,人们设计了高级编程语言,以满足人们对高效简洁编程语言的追求。在编程语言被机器语言和汇编语言更新之后,人们发现了限制程序普及的关键因素——程序的可移植性。有必要设计一个可以独立于计算机硬件在不同机器上运行的程序。这样可以避免很多重复的编程过程,提高效率。同时,这种语言...

谁能帮我设计一个C语言程序啊??
C语言程序设计课程设计题目1链表操作,本题中已经定义了相应的数据结构用来存放学生的学号、姓名、三门课的成绩,并设计了一个简单的菜单;请完成以下设计:(1)创建一个链表;voidc... C语言程序设计 课程设计题目1链表操作, 本题中已经定义了相应的数据结构用来存放学生的学号、姓名、三门课的成绩,并设计了一个简单...

设计一个C语言程序
,b;do { printf("\\n请输入想查找的学生姓名:");fflush(stdin);gets(name);for(m=0;m=20)printf("\\n\\t\\t没有找到这个学生!!!\\n");else {

设计一个c语言程序 据要求设计菜单程序 好的话可以追加哦
printf("输入一个整数(-1 结束):");while(scanf("%d",&x) == 1 && x != -1) {p->next = (pNode)malloc(sizeof(struct node));p->next->data = x;p = p->next;printf("输入一个整数(-1 结束):");}p->next= NULL;}void AppendNode(LinkList head, int x) {pNode p ...

C语言程序设计 输入数字1-7,输出对应的星期几(switch)
程序流程如下:1 输入变量a;2 对变量a进行判断(switch(a));3 根据a值输出对应的字符串;4 程序结束。代码如下:include <stdio.h>int main(){ int a; scanf("%d",&a);\/\/输入a switch(a) { case 1: printf("星期一\\n"); break; case 2: printf("星期...

在选择程序设计语言时应考虑哪些因素
通常要考虑的因素有:项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识等。1、项目的应用领域 (1)科学工程计算。需要大量的标准库函数,以便处理复杂的数值计算,可供选用的语言有FORTRAN语言、C语言等。(2)数据处理与数据库应用。SQL为IBM公司开发的数据...

兰山区15192652615: 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要插入的数:");...

兰山区15192652615: 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...

兰山区15192652615: 用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++)...

兰山区15192652615: C编程:已有一个排好序的序列,输入一个数插入该序列中,使其仍然保持有序.(用数组知识解决.)拜托了 -
稻琪可维: //已有一个排好序的序列,输入一个数插入该序列中,使其仍然保持有序 #include#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]

兰山区15192652615: 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...

兰山区15192652615: C语言 有一个程序已经排好序列 现在插入一个数 -
稻琪可维: for(i=0;i<10;i++) if(n>a[i]) { flag++; b[i]=a[i]; } else { b[i]=n; break; } 你看在这个循环中,因为a[9]等于100,所以再循环,i等于10不符合条件了,所以n没有保存到b的数组中,而flag自加到10,所以下面的循环也就没有执行了,因而当输入一个比100大的整数你的程序是错的,而书中它先比较输入的数有没有比最大的数还要大的情况,所以书中的没有错

兰山区15192652615: c语言程序设计:有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中 -
稻琪可维: #include int main() { int a[6] = {1,3,6,7,9}; int i,j,x,t; printf("insert data:");...

兰山区15192652615: c语言程序设计题:已知一个以排好的序的数组,要求输入一个数后.按原来的规律将他插入数组中 -
稻琪可维: 用数组写. 程序1: 自己输入10个数,然后从小到大排序. 然后输入另一个数,插入原来的数组,再排序. #includevoid main() { int i,j,m,temp,a[11]; for(i=0;ia[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } for(i=0;im) { temp=a[i]; a[i]=m; m=temp; } a[10]=m; ...

兰山区15192652615: 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)++; //插入后将数组长度增加一 }

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

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