题目描述
已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
输入
第一行,原始数列。 第二行,需要插入的数字。
输出
排序后的数列
样例输入
1 7 8 17 23 24 59 62 101
50
样例输出
1
7
8
17
23
24
50
59
62
101
#include <stdio.h>
int main()
{
int a[100] = {0}; //因为你要继续加入数据,所以数组不能定义成9,要大一些,至少应该是10
int i;
for(i = 0;i < 9;i++ ) //输入9个数,必须用循环,一句解决不了
scanf("%d",&a[i]);
int j,temp;
for(i = 0;i < 8;i++) //完成排序
{
for(j = i + 1;j < 9;j++)
if(a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
scanf("%d", &temp );
for(i = 0;i < 9;i++ ) //查找插入位置
{
if ( temp < a[i] )
break;
}
for( j = 8;j >= i;j-- ) //i后面的数后移
a[j + 1] = a[j] ;
a[i] = temp; //插入数据到i位
for(i = 0;i < 10;i++ ) //输出数组
printf("%d\n",a[i]);
return 0;
}