若有已降序排列的数列20、18、16、14、…、6、4、2,现要求从键盘输入一个数插入到该数列中,要求按原来的排列规律插入。
#include<stdio.h>
int main()
{
int a[20]={20,18,16,14,12,10,8,6,4,2};
int c;
printf("请输入要插入的数:\n");
scanf("%d", &c);
int temp;
int len = sizeof(a)/ sizeof(a[0]);
for(int i = len - 2; i >= 0; i --){
if(a[i] <= c){//若第 i 个元素大于 i-1 元素则直接插入;反之,需要找到适当的插入位置后在插入。
a[i + 1] = a[i];
}
else{
a[i] = c;
break;
}
}
for (i = 0; i < len; i++)
{
printf("%d ",a[i]);
}
return 0;
}