思路:
假设数组a有n个元素,而且已按升序排列,在插入一个数时按下面的方法处理:
1.如果插入的数num比a数组最后一个数大,则将插入的数放在a数组末尾。
2.如果插入的数num不比a数组最后一个数大,则将它依次和a[0]~a[n-1]比较,直到出现a[i]>num为止,这时表示a[0]~a[i-1]各元素的值比num小,a[i]~a[n-1]各元素的值比num大。num理应插到a[i-1]之后,a[i]之前。则将a[i]到a[n-1]各元素向后移动一个位置。然后将num放在a[i]中。
代码:
#include
int main() {
int a[11] = {1,4,6,9,13,16,19,28,40,100};
for(int i =0;i<10;i++){
printf("%d ",a[i]);
}
printf("\n");
printf("请输入一个数字\n");
int num =0;
scanf("%d",&num);
if(num>a[9]){
a[10] = num;
}else{
int i;
for(i =9;i>=0;i--){
if(num
a[i+1] = a[i];
}else{
a[i+1] = num;
break;
}
}
if(i<0){
a[i+1] = num;
}
}
for(int i =0;i<11;i++){
printf("%d ",a[i]);
}
return 0;
}