大众计算机学习网

专门提供各种电脑教程

C程序将一个新数插入到已排好序数组中

Admin | 2008-1-8 21:42:49 | 被阅次数 | 8242

  问题需求:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

  程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

  程序源代码:

  main()
  {
  int a[11]={1,4,6,9,13,16,19,28,40,100};
  int temp1,temp2,number,end,i,j;
  printf("original array is:\n");
  for(i=0;i<10;i++)
   printf("%5d",a);
  printf("\n");
  printf("insert a new number:");
  scanf("%d",&number);
  end=a[9];
  if(number>end)
   a[10]=number;
  else
   {for(i=0;i<10;i++)
    { if(a>number)
     {temp1=a;
      a=number;
     for(j=i+1;j<11;j++)
     {temp2=a[j];
      a[j]=temp1;
      temp1=temp2;
     }
     break;
     }
    }
  }
  for(i=0;i<11;i++)
   printf("%6d",a);
  }