代码:
#include <stdio.h>
#define N 11
int main(){
//原数组是升序
int a[N]={1,4,6,9,13,16,19,28,40,100};
int n,num;
printf("原数组的数为:\n");
for(n=0;n<N-1;n++)
printf("%d ",a[n]);
printf("\n");
printf("请输入一个数:\n");
scanf("%d",&num);
for(n=0;n<=N-2;n++){
if(a[n]<num&&num<=a[n+1]){
// printf("n=%d\n",n);
//那么num应该插入到a[n+1]位置处,即a[2]处
for(int j=N-1;j>=n+2;j--){
a[j]=a[j-1];
// printf("a[%d]=%d\n",j,a[j]);
}
a[n+1]=num;
}
}
printf("\n");
//printf("n=%d\n",n);n=10了
printf("现数组的数为:\n");
for(n=0;n<=N-1;n++){
printf("%d ",a[n]);
}
printf("\n");
return 0;
}
忽略了如果插入数比末尾数大的情况,改进: