2019 数列有序!
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<cstdio>
int station(int a[], int n, int m){
for(int i = 0; i < n; i++){
if(a[i] <= m && a[i + 1] >= m)
return i + 1;//要插入的位置是当前i和i+1之间
}
}
int main(){
int n, m;
int a[101];
while(~scanf("%d%d", &n, &m) && (n && m)){
for(int i = 0; i < n; i++){
scanf("%d", &a[i]);
}
int flag = station(a, n, m);
for(int i = n - 1; i >= flag; i--){//腾出a[flag]
a[i + 1] = a[i];
}
a[flag] = m;
printf("%d", a[0]);//输出的格式仍然要注意
for(int i = 1; i <= n; i++){
printf(" %d", a[i]);
}
printf("\n");//最后别忘记黄换行
}
return 0;
}