题目描述:
给定有序数组(从小到大),再给你一个数,要求插入该数到数组中并保持顺序
输入:
多组测试,每组第一行输入一个整数n,然后是n个有序的整数 第二行输入1个整数m和1个整数K
输出:
将整数m插入到原数组中保持顺序是升序,然后输出2行 第一行是插入以后的数组 第二行是插入以后的数组中下标值是K的数 n m k不超过20
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,j,a[20],min=0,k;
int t=0;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++){
scanf("%d",&a[i]);}
int m,k;
scanf("%d%d",&m,&k);
for(j=0;j<n-1;j++){ //冒泡法排序
for(i=0;i<n-1-j;i++){
if(a[i+1]<a[i]) {
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for(i=0;i<n;i++) { //插入m
if(a[i]>m){
k=i;
for(i=n-1;i<=k;i--){
a[i+1]=a[i];
a[k]=m;
}
}
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("%d\n",a[n]);
printf("%d\n",a[k]);
}
return 0;
}