题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1、先排序
2、插入
#include <stdio.h>
// 主函数
void main()
{
int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};
//排序(选择排序)
for (i = 0;i< 10;i++) {
p = i;
q = a[i];
for (j = i+1;j< 10;j++) {
if (q > a[j]) {
q = a[j];
p = j;
}
}
if (p != i) {
s = a[i];
a[i] = a[p];
a[p] = s;
}
}
scanf("%d", &n);
//插入
for (i = 0;i< 10;i++)
if (n < a[i]) {
for (s=9;s >= i; s--) {
a[s+1] = a[s];
}
printf("i=%d\n", i);
break;
}
a[i] = n;
for(i=0;i<=10;i++)
printf("%d ", a[i]);
}
执行结果: