输入一批数据,存入数组后,按顺序排序,要求输入一个数后,按原来的规律将它插入数组中?

输入一批数据,存入数组后,按顺序排序,要求输入一个数后,按原来的规律将它插入数组中。分别编写排序函数和查找函数,并在主函数中数据输入、函数调用、结果输出(c++)

#include<stdio.h>

#define N 20

void f(int *a,int n) { int i,j,k; //排序: 小->大

for ( i=0;i<n-1;i++ ) for ( j=i+1;j<n;j++ ) if ( a[i]>a[j] ) {k=a[i];a[i]=a[j];a[j]=k;}

}

int f1(int *a,int n,int x) { int i=n;

while ( i>0 ) { if ( a[i-1]>x ) { a[i]=a[i-1]; i--; } else break; }

a[i]=x; return n+1;

}

void main() { int a[N],n=10,i,x;

for ( i=0;i<n;i++ ) scanf("%d",&a[i]);

f(a,n); scanf("%d",&x); n=f1(a,n,x);

for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n");

}

温馨提示:答案为网友推荐,仅供参考
相似回答