已有一个已正序排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
两个注意点:
- 考虑到插入数与数组的三种大小关系;
- 对数组值进行后移时,应当从后往前,而非从前往后。
#include<stdio.h>
int main(){
int a[10],x;
int i,temp;
for(int i=0;i<9;i++){
scanf("%d",&a[i]);
}
scanf("%d",&x);
if(x>a[8]) a[9] = x;
else if(x<a[0]){
for(i=9;i>0;i--){
a[i] = a[i-1];
}
a[0] = x;
}
else{
for(i=0;i<10;i++){
if(x>a[i] && x<=a[i+1]){
temp = i+1;
break;
}
}
for(i=9;i>temp;i--){
a[i] = a[i-1];
}
a[temp] = x;
}
for(i=0;i<10;i++){
printf("%d\n",a[i]);
}
return 0;
}