首页 > 试题广场 >

假设有从小到大排列的一组数据存放在一个数组中,在主函数中从键

[问答题]

假设有从小到大排列的一组数据存放在一个数组中,在主函数中从键盘输入一个在该数组的最小值和最大值之间的数,并调用一个函数把输入的数插入到原有的数组中,保持从小到大的顺序,并把最大数挤出。然后在主函数中输出改变后的数组。

推荐
#include<iostream>
using namespace std;
void insert( int a[],int,int );
int main()
{
 int a[] = { 10, 12, 23, 25, 48, 48, 53, 58, 60, 78 };
  int x,n,i;
  cout << "please input insert data: ";
  cin >> x;
  n = sizeof(a)/sizeof(int);        //求数组长度
  insert( a, n, x );                 //插入元素
  for( i=0; i<n; i++ )
    cout << a[i] << "   ";
cout << endl;
}
void insert( int a[],int n,int x )
{
 int i,p,j;
  if ( x<a[n-1] )
  {
 for( i=1; i<n; i++ )         //查找插入位置
      if( x<a[i] )
{
  p=i; break;
}
       for( j=n-1; j>=p; j-- )        //后移元素,挤出最大值
          a[j] = a[j-1];
       a[p] = x;                    //插入元素
  }
}

发表于 2018-05-07 11:43:17 回复(0)