问题描述:定义一个10个元素的数组,输入9个已经是升序排列的整数,存入一维数组,再输入一个整数存入x,查找x在已有的排好序的数组中的位置,并将其插入,形成一个新的9个元素的升序排列的数组。
输入形式:升序排列的10个元素(空格分隔)
样例输入:1 2 5 6 7 8 9 10 12
4
样例输出:1 2 4 5 6 7 8 9 10 12
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i,n,m;
int a[10];
for(i=0;i<9;i++)
{
scanf("%d",&a[i]);
}
printf("\n");
scanf("%d",&n);
m=findx(a,n);
for(i=9;i>m;i--)
{
a[i]=a[i-1];
}
a[m]=n;
sort(a,10);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
int findx(int a[],int n)
{
int i;
for(i=0;i<10;i++)
{
if(a[i]>=n)
return i;
}
return 0;
}
int sort(int a[],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
return 0;
}