假设有从小到大排列的一组数据存放在一个数组中,在主函数中从键盘输入一个在该数组的最小值和最大值之间的数,并调用一个函数把输入的数插入到原有的数组中,保持从小到大的顺序,并把最大数挤出。然后在主函数中输出改变后的数组。
#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; //插入元素 } }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题