7-22 一个数插入到有序数列中
题目描述
使用插入法排序,假设x数组的n个数据已经按降序排列,
现在插入一个数y到数组中,使数组x仍然是降序排列的。
功能需求
输入格式:
在第一行中输入正整数n值。
在第二行中输入n个用空格间隔的降序排好的整数,
数据之间只能用1个空格间隔。
在第三行中输入一个待插入的整数y。
所有数据均是100以内的正整数。
输出格式:
在一行中输出将y插入后的有序数组,每个数据输出占3列。
输入样例:
5
7 6 3 2 1
4
输出样例:
7 6 4 3 2 1
代码内容
#include<stdio.h>
int main()
{
int i,y,j,n;
j=0;
scanf("%d",&n);
int x[n];
for(i=0;i<n;i++)
scanf("%d",&x[i]);
scanf("%d",&y);
if(y>=x[0])
{
printf("%3d",y);
for(i=0;i<n;i++)
printf("%3d",x[i]);
}
else if(y<=x[n-1])
{
for(i=0;i<n;i++)
printf("%3d",x[i]);
printf("%3d",y);
}
else
{
for(i=0;i<n;i++)
{
j++;
printf("%3d",x[i]);
if(x[i+1]<=y&&x[i]>=y)
{printf("%3d",y);break;}
}
for(i=j;i<n;i++)
printf("%3d",x[i]);
}
return 0;
}