插入有序数组 (12分)
一个长度为10的数组中输入n(0≤n≤9)个整数,这n个整数从小到大有序。再输入一个x,把它插入数组适当位置,使数组仍保持有序。
输入格式:
输入n,再以从小到大顺序输入n个整数,再输入x。
输出格式:
插入x后的数组,数与数间用空格分割。
输入样例:
5
1 3 5 7 9
2
输出样例:
1 2 3 5 7 9
代码如下(正能量!!!):
#include<stdio.h>
#define N 10
void sort(int a[],int num);
int main()
{
int a[N];
int n;
int i;
int num;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&num);
sort(a,num);
for(i=0;i<n+1;i++)
printf("%d ",a[i]);
return 0;
}
void sort(int a[],int num)
{
int i,j,temp1,temp2;
int end = a[N-2];
if(num >= end)
a[N-1] = num;
else
{
for(i = 0; i < N-1; i++)
if(a[i] > num)
{
temp1 = a[i];
a[i] = num;
for(j = i+1; j < N; j++)
{
temp2 = a[j];
a[j] = temp1;
temp1 = temp2;
}
break;
}
}
}