题目描述:编写程序,对一个已经排好序的数组,输入一个元素。将该元素按原来的排序规则将它插入到数组中。例如原数组为:1 2 6 7 9,输入待插入的元素3,则插入完成后结果为: 1 2 3 6 7 9; |
输入描述:输入包含两部分,第一部分先输入n,表示数组中元素个数,接着输入n个已经排序好的数,数组最大个数n为20,第二部分为待插入的数据 |
输出描述:新的排序好的数组元素 |
样式输入:5 |
样式输出:1 2 3 6 7 9 |
#include<stdio.h>
int main()
{
int m,n;
scanf("%d",&n);
int a[20];
int i;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
scanf("%d",&m);
int k=0;
for(i=0;i<n;i++){
if(m<=a[0]){
k=-1;
}
if(m>=a[n-1]){
k=n-1;
}
if((a[i]<m&&m<a[i+1])||(m==a[i])){
k=i;
}
}
printf("%d\n",k);
for(i=n;i>k+1;i--){
a[i]=a[i-1];
}
a[k+1]=m;
for(i=0;i<n+1;i++){
printf("%d ",a[i]);
}
return 0;
}