将一个数插入已排好序的数组,该数按照原来数组进行排序

最近练习到一个程序题,该题要求是将一个已排好序的数组,要求输入一个数后,按照原来排序的规律将它插入数组中。

#include <stdio.h>

int main()
{
 int i,j;
 int k,q;

 scanf("%d",&k); //输入一个数

 int a[10]={0,2,4,6,9,}; //初始化数组
  int b[10];//用于存放a数组的中的值
  for(i=0;i<10;i++)
     b[i]=a[i];

  for(i=0;i<10;i++)
    {if(k>a[i]&&k<a[i+1])  //比较输入的数在数组哪个位置中
       {  q=i+1; 
         a[q]=k; //将输入的数插入数组中
      for(j=q+1;j<10;j++)   // 利用b数组将后面的数写入a数组
         a[j]=b[j-1];
       }
    }


  for(i=0;i<10;i++) //插入后输出数组
    printf("%3d",a[i]);

本程序的主要是利用了两个数组,一个数组确定下该数的位置,并将该数插入,其后面的利用b数组依次写入,这样实现了一个数在数组中的插入。

猜你喜欢

转载自blog.csdn.net/wanrxpjing/article/details/81123768