Problem Description
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
Input
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。
Output
对于每个测试实例,输出插入新的元素后的数列。
Sample Input
3 3 1 2 4 0 0
Sample Output
1 2 3 4#include<stdio.h> int main() { int m,n,a[100],b,c,i,j; while(scanf("%d%d",&n,&m),n||m) { for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) { if(a[i]<m&&a[i+1]>=m) { j=i+1;break; } } for(i=0;i<j;i++) printf("%d ",a[i]); printf("%d ",m); for(i=j;i<n-1;i++) printf("%d ",a[i]); printf("%d ",a[n-1]); } return 0; } #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int n,m,a[1010]; int main() { while(scanf("%d%d",&n,&m),m||n) { for(int i=0;i<n;i++) scanf("%d",&a[i]); a[n]=m; sort(a,a+n+1);//快速排序函数 for(int i=0;i<n;i++) printf("%d ",a[i]); printf("%d ",a[n]); } return 0; } #include<stdio.h> #include<string.h> int n,m,a[1010]; int main() { while(scanf("%d%d",&n,&m),m||n) { for(int i=0;i<n;i++) scanf("%d",&a[i]); a[n]=m; int t; for(int i=0;i<=n;i++)//冒泡排序 for(int j=i+1;j<=n;j++) { if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } for(int i=0;i<n;i++) printf("%d ",a[i]); printf("%d ",a[n]); } return 0; }